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

「3070 有効なフィールド名または式として認識できません」エラーで、困った

Accessで、クエリ単体での実行だとうまくいくのに、いざ、そのクエリをVBAコード内で実行すると、上記エラーが出る。 難問だった。 SQL文内でDISTINCTを使っているからかなーとか、LEFT …

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …

no image

Accessのフォームでテキストボックスに入れた値を次回オープン時の既定値として自身に保存するには

ちょっとだけ苦労した。 次回もきっと使うことがあるだろうから、メモメモ。 現在の値を変数に入れておく(これをしておかないと、次の処理でデザインビューに切り替わるために入力した値も消える)。 フォームを …

no image

客先で動かしているAccessとFAXの連携システムが昨日から止まっている

これまでのWindowsXP+OutlookExpressであれば問題なかった。 しかし、OSはWindows7になってしまい、メールはWindowsLiveメールになってしまった。 そしてWindo …

no image

Accessであらかじめリンクテーブルを開いておくと劇的に高速化

リンクテーブルに対して「Dlookupで値を探して見つかったらCurrentDb.Execute UPDATE~ で値を更新」という処理をループで回している。 この処理、一旦始めると、終えるのに30分 …