MS Access

テーブル/クエリのデータシートビューでイベントを処理する方法

投稿日:2013年4月9日 更新日:

参考:テーブル/クエリのデータシートビューでイベントを処理する方法 | YU-TANG’s MS-Access Discovery

え、そうなの?
クエリを閉じた際のイベントをセットできるの?
知らなかった~。
Accessは、ホント、隠れた技がたくさんあるよね~。

自分の場合、上記を参考に、

Private Sub cmdクエリ表示はがき用_Click()
    DoCmd.OpenQuery "新規顧客はがき用", acViewNormal
    Screen.ActiveDatasheet.OnClose = "=はがきチェック更新()"
End Sub

とフォームモジュールに書いて、さらに標準モジュールに、

Public Function はがきチェック更新()
Dim SQL As String

    If MsgBox("表示中のデータについて「はがき作成済み」とします(データ更新)", vbOKCancel) = vbOK Then
        DoCmd.SetWarnings False
        SQL = "UPDATE master SET はがき = True WHERE 顧客ID = " & Me.txt廃番 & ";"
        DoCmd.RunSQL SQL
        DoCmd.SetWarnings True
        MsgBox "顧客IDを更新しました。"
    End If
    
End Function
 

・・・なんていう風にして使った。
便利・便利。

-MS Access

執筆者:

関連記事

no image

サブフォームで苦労

Access覚書。 サブフォームつきのフォームからダイアログ・フォームを呼び出す。 ダイアログフォームのリスト形式のレコードをクリックしたら、呼び出し元のフォームのサブフォームに値を追加して、次のため …

no image

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …

no image

初めてのSQL Server 2008 R2 Express Editionでつまづいたことの記録

やりたかったことは、 1.Accessのとあるテーブルを、SQL Server 2008にインポートして、複製を作る。 2.上記で作ったテーブルを、AccessからODBCで読め、かつパススルークエリ …

no image

VBAで忘れてしまっていたことと、知らなかったこと

STOPステートメント: ブレークポイントを設定しないでもその行でコード処理を止めることができるので、Access終了->Access起動といったシチュエーションで使える。 Randomizeステート …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …