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

时间:2016-09-01 06:35:27

标签: ms-access access-vba delete-row

我只有2个字段和一个按钮,我有连续的表格。

  

设计视图   Form View

'

  

表单视图   Design View

以下是删除按钮的代码。

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 Value。正确捕获IDWeb的SOme时间,有时不捕获。

Edit1 :我尝试了以下代码。但问题仍然存在。

我猜用户在删除当前记录时可以在另一条记录上。因此这个问题。但该记录目前在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

2 个答案:

答案 0 :(得分:2)

就个人而言,我不使用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

答案 1 :(得分:2)

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

然后

然后运行acCmdDeleteRecord