私は10以上のテキストコントロールを持つAccessデータベースを持っています。 CTRL + A KeyPressイベントを処理するコードをいくつか用意したいと思います。通常、AccessでCTRL + Aを押すと、すべてレコードが選択されます。私の最終目標は、コントロールのテキストだけを削除できるように、CTRL + Aでそのコントロールのテキストを選択することです(ブラウザのURLバーのCTRL + Aを押して、そのテキストのみを選択するなど)。私はthis articleをチェックしました。テキストボックス(各テキストボックスのKeyPress = 60 +行のコードを処理する)を扱えるようにしたいと思っていました。私は、次のループのために何か方法がありますか?MS AccessマルチコントロールKeyPress Ctrl + Aハンドラー
Function HandleKeyPress(frm As Form, KeyAscii As Integer, ByVal e As KeyPressEventArgs) 'should it be a function or a sub?
For Each ctl In Me.Controls
If KeyAscii = 1 Then 'I think this is CTRL + A?
e.Handled = True 'Stop this keypress from doing anything in access
focused_text_box.SelStart = 0
focused_text_box.SelLength = Len(focused_text_box.Text)
End If
Next
End Function
これに加えて、このサブ機能にテキストボックスの名前をどのように渡すことができますか?
注:まだ気づいていない場合は、私はまだVBA /アクセスのノブです。
それは(June7が述べたように)だけVBAでそのように動作していない複数のものが含まれていますので、あなたの現在のアプローチは、動作しません
このコードをVBAモジュールに入れましたか?デバッグ>コンパイルを実行しましたか? KeyPressEventArgsのエラーです。これはVB.netクラスと思われ、アクセスする必要のある参照ライブラリがない限り、Access VBAはそれを認識しません。 – June7
あなたが望むのであれば、コントロールの内容を選択して削除することができます。次に、 'control.text =" "' – jsotola
を選択せずに削除します。これはエラーが発生する可能性が高いことを知りました。 VBAで何が相当するのか確かめてください。振り返ると、私はちょうどそれを見ていたはずです、私の謝罪。 – Pat