Microsoft Access 掲示板

データシートビューでのVBA実行について

4 コメント
views
4 フォロー

このコードを、データシートビューで実行するにはどしたらいいですか?
データシートビューでは、ボタンを設置できないので、
下記のコードと、同等の効果をもたらすようなイベントはありますか?

このコードを実行するのは、月に1回だけなので、レコード読み込み時とかは、利用できないです。

お知恵を、ご教示くださいませ

Private Sub cmdFilterButton_Click()
    
    If Me.FilterOn = False Then
        Me.Filter = "終了チェック = False"
        Me.FilterOn = True
           
    End If
End Sub
しん
作成: 2024/10/10 (木) 18:43:42
通報 ...
1

データシートビューでは、ボタンを設置できないので、
下記のコードと、同等の効果をもたらすようなイベントはありますか?

データシートビューでフォームを開いているときに、ユーザーが任意のタイミングで実行するのでしょうか。
ボタンは配置できないので、特定のキー操作(ショートカットキー)で実行するようにすればどうでしょう。

フォームの「キーボードイベント取得」プロパティを「はい」にしておいて、「キークリック時」のイベントプロシージャに下記のように記述すればいいでしょう。

下記はフォームがアクティブの時にF1キーをの押したときに実行する例です。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 Then
        KeyCode = 0 'キー入力を無効化
        If Me.FilterOn = False Then
            Me.Filter = "終了チェック = False"
            Me.FilterOn = True
        End If
    End If
End Sub
2
しん 2024/10/11 (金) 09:58:08 051ad@9fff4

ありがとうございました。
勉強になりました

3
  1. データシートフォームとは別に非連結フォームを新規作成する。

  2. 1 の非連結フォームの詳細セクション上にサブフォームコントロールを挿入する。

  3. 2 のサブフォームコントロールのソースオブジェクトをデータシートフォームとする。つまり、非連結フォームをメインフォーム、データシートフォームをサブフォームとする。

  4. メインフォームの詳細セクション上にコマンドボタンを挿入する。

  5. 4 のコマンドボタンの[クリック時]イベントの発生時に、サブフォームのフィルターを操作するマクロまたはプロシージャを実行するようにする。

といった方法もあるでしょう。

4
しん 2024/10/11 (金) 10:15:16 051ad@9fff4

sk様
回答ありがとうございました。
参考にさせていただきます。