Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用acCmdDeleteRecord删除MS Access中连续表单上的记录_Ms Access_Vba_Delete Row - Fatal编程技术网

Ms access 使用acCmdDeleteRecord删除MS Access中连续表单上的记录

Ms access 使用acCmdDeleteRecord删除MS Access中连续表单上的记录,ms-access,vba,delete-row,Ms Access,Vba,Delete Row,我有一个连续的表单,只有两个字段和一个按钮 设计视图 " 窗体视图 下面是删除按钮的代码 Private Sub cmdDelete_Click() DoCmd.RunCommand acCmdDeleteRecord Debug.Print "IDWeb - " & Me.IDWeb 'Here I Execute a Web API to Delete Data based on Me.IDWeb End Sub 问题-Web API没有获取Me.

我有一个连续的表单,只有两个字段和一个按钮

设计视图

"

窗体视图

下面是删除按钮的代码

Private Sub cmdDelete_Click()
     DoCmd.RunCommand acCmdDeleteRecord
     Debug.Print "IDWeb - " & Me.IDWeb
     'Here I Execute a Web API to Delete Data based on Me.IDWeb
End Sub
问题-Web API没有获取Me.IDWeb值。有时IDWeb被正确捕获,有时则不正确

我试过下面的代码。但问题依然存在

我猜用户删除当前记录时可能在另一条记录上。这就是问题所在。但该记录目前已在MS Access中删除。唯一的问题是没有正确捕获Me.IDWeb,因此我的web API失败

Private Sub cmdDelete_Click()
    Me.WebType.SetFocus
    If Me.IDWeb = "" Or Me.IDWeb = vbNull Or Me.IDWeb = vbNullString Then
        MsgBox "No Record Selected"
    Else
        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdDeleteRecord
        Debug.Print "IDWeb - " & Me.IDWeb
        'Here I execute my Web API to Delete based on Me.IDWeb
    End If
End Sub

就我个人而言,我不使用DoCmd。您正在尝试获取已删除记录的IdWeb。 假设您的IDWeb是一个数字,如果不使用适当的数据类型,那么以下方法应该可以工作

Dim lngIdWeb as long
lngIdWeb = nz(Me.IdWeb, 0)
If lngIdWeb > 0 Then
Me.RecordsetClone.FindFirst "IdWeb = " & lngIdWeb
If Not Me.RecordsetClone.NoMatch Then
Me.RecordsetClone.Delete
End If
Debug.Print "IdWeb - " & lngIdWeb
End If

就我个人而言,我不使用DoCmd。您正在尝试获取已删除记录的IdWeb。 假设您的IDWeb是一个数字,如果不使用适当的数据类型,那么以下方法应该可以工作

Dim lngIdWeb as long
lngIdWeb = nz(Me.IdWeb, 0)
If lngIdWeb > 0 Then
Me.RecordsetClone.FindFirst "IdWeb = " & lngIdWeb
If Not Me.RecordsetClone.NoMatch Then
Me.RecordsetClone.Delete
End If
Debug.Print "IdWeb - " & lngIdWeb
End If
解决方案是首先获取Me.IDWeb并将其存储在变量中

然后运行acCmdDeleteRecord。

解决方案是首先获取Me.IDWeb并将其存储在变量中


然后运行acCmdDeleteRecord。

我建议您首先获取Me.IDWeb并将其存储在变量中,然后运行acCmdDeleteRecord@Andre棒 极 了问题解决了。谢谢,我建议您首先获取Me.IDWeb并将其存储在变量中,然后运行acCmdDeleteRecord@Andre棒 极 了问题解决了。感谢问题评论中提到的@Andre方法。谢谢你的建议。通过问题评论中提到的@Andre方法解决。谢谢你的建议。