• 締切済み

AccessのフォームでVBAの実行時タイミング

フォームにいくつかテキストボックスがあります。 テキストボックス上でEnterを押して確定したらVBA実行、タブキーでテキストボックスの移動だったら VBAは実行しない、というようにしたいのですが、どのように記入すればいいのでしょうか?

  • w-inty
  • お礼率72% (1169/1618)

みんなの回答

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

> テキストボックス上でEnterを押して確定したらVBA実行、 テキストボックスの更新後イベントではどうでしょうか?

w-inty
質問者

お礼

回答ありがとうございます。 更新後イベント、私も考えたのですが、たとえば入力後、Enterで確定して、もう1回Enter(通常のテキストボックスの移動もEnter)だったらVBA起動で、タブ移動だったらVBA実行しない、というようにしたいんです。 更新後処理だと、どちらにしても何か入力した時点でVBAが動いちゃいますよね。

w-inty
質問者

補足

キークリック時イベントに下記のようにしてIf文で分岐することにしました。 Private Sub SyainNo_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then VBA実行 Else その他の実行結果 End If End Sub ありがとうございました。

関連するQ&A

  • VBAのフォーム カーソル移動

    VBAのフォームでテキストボックス(1)~テキストボックス(5) まで作ったとします。 カーソルの移動はtabindexの値を順番につければいいのですが、例えばENTERキーとTABキーを両方押したときは カーソルが一つ飛ぶ制御をしたいのですがどうすればいいでしょうか? つまり カーソルがテキストボックス(1)にいる状態でENTERキーとTABキーを同時に押せばカーソルがテキストボックス(3)に移動するようにしたいのですが、お願いします

  • Visual Basicの実行フォーム時について

    ●フォームに3つの入力用テキストボックスがあるのですがTabキーではなくEnterキーで2つ目、3つ目のテキストボックスへ移動させるにはどう書けばよいでしょうか? ●またその3つの値を一つのラベルに一行にではなくそれぞれ改行させて表示させたいのですがどう書けばよいでしょうか?

  • Excel VBA VBフォームのタブ移動について

    エクセルVBAなのですが、フォーム内のテキストボックスを入力後EnterやTabキーで移動するかと思うんですけど、この順番を設定する方法ってありますでしょうか? 教えていただければ幸いです。

  • エクセルのフォームでのフォーカス

    エクセルVBAでのユーザーフォームの テキストBOX間のフォーカスはenterで移動可能かのですが、間にComboBoxがあるとComboBoxが飛ばされますが そこにもフォーカス移動って可能でしょうか?

  • 【エクセルVBA】 タブでのカーソル移動の質問です

    ユーザーフォームを設置して、テキストボックスを複数設置し、入力援助するVBAを組んでいます。 タブインデックスのとおりに、タブもしくはエンターキーで、通常はカーソルがテキストボックス間を移動しますが、ほんのたまにですが、エンターキーで移動ができず、またタブキーではテキストボックス内にタブができてしまい、次のテキストボックスに移動しない現象が現れます。 そうした場合はマウスで次のボックスにカーソルを移動しますが非常に面倒です。またこの現象はファイルを再起動したら直ったり直らなかったり、ウインドウズを再起動しても直らなかったりで困っています。 どうしてこのようなカーソル移動の不具合が起こるのか、またはどうしたら無くなるのでしょう?

  • アドレス入力フォームで前回入力した内容を選択しても消えてしまう。

    様々なサイトで会員登録などをするときに、アドレス入力フォームに情報を入力します。ブラウザにフォームを記憶させておくと、各テキストボックスで最初の文字を入力すると、自動入力するようにプルダウンで前回入力した内容が表示されます。それを選択すると、いったんテキストボックスにそれが入り、カーソルがその入力されたものの右端(最後)で点滅している状態になります。問題はここからなのですが、カーソルを次のボックスに移動させようと思ったとき、タブキーを押してすんなり移動するときもあれば、タブキーを押すとまたプルダウンが出て選択しなおすようになったり、プルダウンも出ず最初に入力した2,3文字だけ残してカーソルが次のボックスに移動してしまったりします。選択した内容を確定させなければならないのかと、Enterキーを1回押しても、同じように選択したはずの内容が消えて、最初の2,3文字だけ残して次のボックスに移動したりします。当然何度も前のボックスに戻って入力しなおすはめになり、首をかしげています。とっても基本的なことのようですみませんが、なぜこうなるのか、どうすれば安定して入力できるのか、どなたか教えてくださいませ。(ちなみにWindows XP/Internet Explorer7です)

  • ACCESS VBA フォーム複数条件

    ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。 フォーム内に複数テキストボックスがあります。 テキスト1 テキスト2 テキスト3 このテキストボックスの入力があるかどうかで、 エクスポートするクエリを変更したいです。 それぞれのテキストボックスの入力値は、 対応するクエリの抽出条件になっています。 少なくとも、テキスト1には入力があるという条件で、 ・テキスト2が空白なら、クエリ2を出力する ・テキスト3が空白なら、クエリ3を出力する という処理を行いたいのです。 マクロビルダーで、IFを使った処理は作ることができたのですが、 VBAを使って、同じ処理ができるようにしたいです。 どうかご教授のほど、よろしくお願いします。

  • Access フォームからの検索について

    初歩的な質問で申し訳ありませんが教えて下さい。 Access2000を使っています。 フォームに作ったテキストボックスに、入力した値又は文字と、特定のフィールドと比較し一致した場合にそのレコードをフォームに表示する方法はないでしょうか? いろいろと、web上のQ&Aなども見ましたが、思った動作をしませでした。 考えているのは、   ・テキストボックスにある値を入力し、『Enter』を押すとテキストボックスに入力した値と特定のフィールドと一致したレコードをフォームに表示 ・一致しない場合はメッセージボックスで一致しない旨を表示 です。 ・完全一致のみ表示 VBAでの動作を考えていますが、合わせて他の方法があれば教示頂ければと思います。 以上、お手数をお掛け致しますがよろしくお願い致します。

  • AccessのVBAにおいて,アクセスフォームに表示されている「値」を

    AccessのVBAにおいて,アクセスフォームに表示されている「値」を変数の中に格納したい。  例えば,オートフォームの単票形式でフォームを作成した場合,「番号」「製品」といったフィールドが2個あるテーブルを使うと,「番号」「製品」という名前のテキストボックスが2個ほどできます。 (フィールド名やテキストボックス名は問題ではありません。) このフォーム上に「ボタン」を配置し,このボタンをクリックした時に,「製品」というテキストボックスの内容を,メッセージボックスで表示させたい。 MsgBox (Me.製品.Text) と書いてもエラーとなります。 実際には,このフォームで欲しいデータを見つけた時,ボタンクリックで,テキストボックスに表示されている内容をグローバル変数に格納したいのですが,方法が分かりません。 Access 初心者です。どなたかよろしくお願いします。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

専門家に質問してみよう