2016-09-01 1 views
1

2 개의 필드와 버튼으로 구성된 연속 양식이 있습니다.acCmdDeleteRecord를 사용하여 MS Access에서 연속 양식의 레코드 삭제

디자인보기 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 

문제점 - 웹 API는 Me.IDWeb Value을하지 않습니다. SOme 시간은 IDWeb가 올바르게 포착 된 경우가 있습니다.

편집 1 : 아래 코드를 시도했습니다. 그러나 여전히 문제가 존재합니다.

사용자가 현재 레코드를 삭제할 때 다른 레코드에있을 수 있습니다. 그러므로 문제. 그러나 레코드는 현재 MS Access에서 삭제됩니다. 문제가있는 경우에만 Me.IDWeb이 제대로 캡처되지 않으므로 내 웹 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

나는 당신에게 ** 처음으로'Me.IDWeb' (변수에 저장), ** 다음에'acCmdDeleteRecord'를 실행하도록 제안합니다. – Andre

+0

@Andre Superb. 문제 해결됨. 감사합니다 –

답변

2

작동합니다 숫자입니다

그 후에는 acCmdDeleteRecord을 실행하십시오.

2

저는 개인적으로 DoCmd를 사용하지 않습니다. 삭제 된 레코드의 IdWeb을 가져 오려고합니다. 당신의 IDWeb 가정 은 (적절한 데이터 형식을 사용하지 않은 경우), 다음이 솔루션은 Me.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 
+0

@Andre 방법 (문제의 코멘트에 언급)에 의해 해결. 귀하의 제안에 감사드립니다. –