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方法解决。谢谢你的建议。