重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

XP&ACCESS2003
メインフォーム/サブフォーム形式のフォームで、受注番号で連結しています。
メインフォームが受注、サブフォームが受注明細です。(1対多)
サブフォームに削除ボタンをつけて、受注明細のレコードを1件削除するようにしています。以下が削除ボタンのクリック時のプロシージャーです。
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
クリックした段階で、クエリーで見てみると確かに削除されています。
ただ、フォームを再度開くと空のデータが追加されています。(=削除前とレコード件数は同じ)
このサブフォームでは、レコード追加時にフィールド「行」に行ナンバーを入力させるために、隠しで [行NO]テキストボックスを持たせて、自動的に行NOをいれています。
サブフォームの挿入前処理は以下です。
[行NO] = Val(DMax("[行NO]", "Q_受注_工程_明細_行NO") & ".0") + 1
削除してもこの行NOが自動的に別のレコードを追加しているようです。
何か、よい方法をご存知の方、よろしくお願いします。

A 回答 (2件)

ゴミレコードは、他にもある筈です。


ですから、一番手っ取り早いのは、フォームを閉じる時に掃除をすることです。
メッセージを出すかどうかは好みの問題です。

Private Sub Form_Close()
 Dim intCount As Integer
 Dim strWhere As String
 
 strWhere = "年月日 is null OR コード is null Or (借方金額=0 AND 貸方金額=0 AND コード>99)"
 intCount = DCount("*", "現金出納帳", strWhere)
 If intCount > 0 Then
  Message intCount & " 件の入力未了レコードを削除します。"
  QDFExecute "入力未了レコードの削除", "DELETE FROM 現金出納帳 WHERE " & strWhere
 End If
End Sub

Public Function QDFExecute(ByVal QDFName As String, ByVal SQLText As String) As Boolean
On Error GoTo Err_QDFExecute
 Dim isOK As Boolean
 Dim dbs As DAO.Database
 
 isOK = True
 Set dbs = CurrentDb
 dbs.Execute SQLText
Exit_QDFExecute:
 QDFExecute = isOK
 Exit Function
Err_QDFExecute:
 isOK = False
 ErrorMsg Err.Description & "(QDFExecute:" & QDFName & ")"
 Resume Exit_QDFExecute
End Function
    • good
    • 0

>フォームを再度開くと空のデータが追加されています。


再度開くとは新たにフォームを開くと行Noのみのレコードが表示され受注明細のテーブルに追加されたまま という事なのでしょうか。

通常はこんな感じで行Noをふるのですが
Private Sub Form_BeforeInsert(Cancel As Integer)
If DCount("[行NO]", "受注明細", "受注番号 = " & Forms!メインフォーム名!サブフォーム名!受注番号) = 0 Then
Me![行NO] = 1
Else
Me![行NO] = DMax("[異動No,]", "受注明細", "受注番号 = " & Forms!メインフォーム名!サブフォーム名!受注番号) + 1
End If
End Sub
普通に削除できるはずなのですが・・。

クエリを使って行Noを取得してさらに.01のようにしているようですが
[行NO] = Val(DMax("[行NO]", "Q_受注_工程_明細_行NO") & ".0") + 1
ほぼ一緒ですよね。
削除ボタンの記述の後にサブフォームをRequeryさせるとどうなりますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す