2016-09-01 9 views
1

私は2つのフィールドと1つのボタンだけを持つ連続したフォームを持っています。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が正しくキャプチャされないため、私の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

私はまずあなたが '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メソッドで解決(質問のコメントに記載)。あなたの提案をありがとう。 –

関連する問題