ACCESS2016のVBAで大きなテキストボックスを1つ用意し、 バーコードを複数回読み込ませ、読込ボタンを押すと、Split関数で 配列に読み込んだものを格納していくプログラムを作りました。

ACCESS2016のVBAで大きなテキストボックスを1つ用意し、 バーコードを複数回読み込ませ、読込ボタンを押すと、Split関数で 配列に読み込んだものを格納していくプログラムを作りました。 (スキャナは末尾に改行コードを付けてくれます) このプログラムでは読み込みボタンを押さないとイベントが発生しないのですが テキストボックスにバーコードを読み込む度、更新後処理イベントを発生させ、 読み込んだ回数をもう1つテキストボックスを用意し、それに表示させたいのですが、 現在イベントが発生しません。 1つのテキストボックスに1つのバーコードを読み込ませた場合の更新後処理は 確認出来ているのですが、1つのテキストボックスに複数のバーコードを読み込ませた 場合の更新後処理イベントは発生させることはできないのでしょうか。

Microsoft Access | Visual Basic53閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

「変更時」(Change)は反応しませんか?

アドバイスありがとうございます。 changeイベントでは反応しているのですが、バーコード(13桁)読みきる前に反応してしまい、バーコードの読み取り成功が2桁だけとなってしまいます。

ThanksImg質問者からのお礼コメント

やり方は違いますが無事に動きました。 変更時ではなく、更新後処理です。 読み取りで更新後イベントが発生した場合、インクリメントしていき、 フォーカスを合わせると表示が変わりました。 アドバイスを参考にさせていただき、ベストアンサーに選ばせて戴きました。 みなさまいつもありがとうございます!

お礼日時:2018/8/28 11:03

その他の回答(2件)

0

フォームのプロパティに 「イベント」-「キーボードイベント取得」というのがあります。 これを「はい」にすれば、「キークリック時」イベントで取得できます。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyReturn 件数.Value = Nz(件数.Value, 0) + 1 End Select End Sub

0

{TAB}キーのバーコードを用意して、最後にリーダで読ませてはどうでしょうか? これにより、そのテキストボックスを脱出でき、その時に更新着処理イベントが発生する。 ただ、その時も{TAB}の後ろに{Enter}が付くのでその後の挙動が保障できません。