実現したいこと
新しく作った明細を削除する場合、「レコードは削除されています。」というエラーなしに削除できるようにしたい。
前提
今現在発注用フォームのサブフォームとして明細を作っています。
その明細を削除ボタンで削除してREQUERYでDELETEDの表示を消して更新するコードを書いたのですが、明細を新しく作って値を入力してからそれをすぐに削除する場合、「レコードは削除されています。」という表示が出てエラーになります。
一旦新しく作ってからメインフォームの他のレコードに移動して戻ってから削除する場合は普通にエラーは出ません。
この場合、どの部分を修正すればいいのでしょうか。
ちなみに、明細のIDはオートナンバー型にしております。
発生している問題・エラーメッセージ
エラーメッセージ 実行時エラー:3167 レコードは削除されています
該当のソースコード
Private Sub 削除_Click() Dim db As DAO.Database Dim Rst As DAO.Recordset Dim strData As String Dim strSQL As String Dim NRET As Long Dim NRET2 As Long Set db = CurrentDb strData = CStr(Me.ID) 'IDのテキストボックスを参照 strSQL = "select * from T_〇〇明細 where ID=" & strData 'T_〇〇明細 テーブルから同じ発注IDのデータを取り出す。 Set Rst = db.OpenRecordset(strSQL, dbOpenDynaset) If Rst.RecordCount = 1 Then 'レコードを開いた中に同じレコードが1つある場合削除するか問う。 NRET = MsgBox("レコードを削除しますか?", vbYesNo + vbQuestion) If NRET = vbNo Then Exit Sub Else NRET2 = MsgBox("本当に削除しますか?", vbYesNo + vbQuestion) If NRET2 = vbNo Then Exit Sub Else With Rst .Edit Rst.Delete End With End If End If End If Rst.Close MsgBox "レコードを削除しました" Me.Requery End Sub
かなり手探りですが、
MsgBox "レコードを削除しました"
Me.Requery
この順番を入れ替えると、改善するでしょうか?

回答1件
あなたの回答
tips
プレビュー