
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が自動的に別のレコードを追加しているようです。
何か、よい方法をご存知の方、よろしくお願いします。
No.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
No.1
- 回答日時:
>フォームを再度開くと空のデータが追加されています。
再度開くとは新たにフォームを開くと行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させるとどうなりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Access(アクセス) Accessに関する質問です。 クエリーQ出勤 からフォームF出勤を作成 フォームは分割フォームで作 1 2023/05/26 08:57
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
ACCSESS2013VBA フォームのレコ...
-
(ACCESS)条件に応じて、テキ...
-
Accessでサブフォームの中の並...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
Access2000 サブフォームのReco...
-
Accessのコンボボックスに連動...
-
サブフォームでのダブルクリッ...
-
2回目に画面のレコードセットの...
-
Accessのサブフォームから値を...
-
サブフォームが見えなくなる。
-
別MDBのフォームを起動
-
Accessで、一覧からクリックし...
-
単票フォームと帳票フォームを...
-
Access VBA acCmdSelectRec...
-
Access ウィンドウサイズの変更
-
AccessのFormのみをスクリーン...
-
ACCESS 削除 サブフォーム ta...
-
レコードセットで得た結果をサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
access サブフォームにリストを...
-
(ACCESS)条件に応じて、テキ...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
Accessでサブフォームの中の並...
-
サブフォームが見えなくなる。
-
AccessのFormのみをスクリーン...
-
googleフォームでインストール...
-
初心者です。accessで請求書を...
-
サブフォームでのダブルクリッ...
-
Accessで、一覧からクリックし...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
Accessのサブフォームから値を...
-
コンボボックスで選択実行後、...
-
アクセスで サブフォームの表...
-
サブフォームの切り替え方を教...
おすすめ情報