![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
どうも。ushiushiです。
今、MS-Access2000でフォームに入力する際に、バーコードを使っています。
このバーコードですが、都合上最後に改行コード(chr(13))の設定をはずしています。
そのために、テキストボックスに入力されても改行コードがないため、次の項目にジャンプしません。
8桁バーコードで読めば次の項目に移動するように「キー入力時」にて確認のプロシージャーを
セットしたのですが、フォーカスが動かないためテキストボックスは常に「null」の状態です。
どうすれば8桁を数えて次の項目にジャンプするように出来るのでしょうか?
ご存知の方、ぜひ教えてください。よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
バーコードリーダーを使ったことがないので、外してるかもしれませんが、
もし、フォーカスのあるテキストボックスにSendKeysのようなことをしているのなら、
テキストボックスの「定型書式」プロパティを
99999999;;_
と設定して、「自動タブ」プロパティを
はい
に設定すればどうでしょうか。
8桁入力されると自動で次のコントロールにフォーカスが移動します。
回答ありがとうございました。
思うように動き出しました。何日も苦労していたので感動ものですね。
月末にかかってしまい、何も出来ない状態で皆さんからたくさんアドバイスを頂いていたのに
本当に申し訳ありませんでした。
今回の勘所は「自動タブ」ですね。定型書式と連動して使えるとは知らなかったので
本当にありがたいです。
どうもありがとうございました。
No.7
- 回答日時:
バーコードリーダーについて調べてみました。
バーコードリーダー入門
http://barcodereader.web.fc2.com/09_01.html
インターフェイスには キーボード送信 と RS-232C規格通信 の2種類あるようです。
「改行コードを送ることでフォーカス移動」ということは、キーボード送信 だと思われます。
もしそうなら、回答No.5 で提案した定型書式と自動タブでフォーカス移動するはずです。
もし、それで、だめなら、変更時イベントでTextで長さを調べてSendKeysで改行を送信したらどうでしょうか。
Private Sub テキスト1_Change()
If Len(Me.テキスト1.Text) >= 8 Then
SendKeys "{ENTER}"
End If
End Sub
参考URL:http://barcodereader.web.fc2.com/09_01.html
バーコードの仕様まで回答頂きありがとうございました。
こちらで使っているのはキーボード送信のものです。
コメントいただいたようにNo.5の提案で、無事に進めることが出来ました。
ありがとうございました。
また、「もしだめなら」の内容は、今後の資料とさせていただきます。
イベントのタイミングである「変更時」にセットするというのは私にとっては
貴重な情報でありました。本当に、ありがとうございました。
No.6
- 回答日時:
参考程度で。
物流で使うJANコードかなにかでしょうか?。
倉庫でスキャンしたらその8ケタJANコードがアクセスの画面にセットされる?。
セットされるだけで次の(項目への)操作はオペレータが行うしかない?。
>都合上最後に改行コード(chr(13))の設定をはずしています。
JANコードなら13桁もあるから?。
バーコードリーダーの使い方を(メーカに)確認してはどうでしょう。
同じ使い方をしていれば、同じ事象に陥った他ユーザもいるとは思います。
改行だけ送信だけの制御があるかもしれない。
>改行コード(chr(13))の設定
これはプログラム制御でなくて、バーコードリーダー側の機器設定?。
バーコードリーダーとアクセスとの連携になにかプログラムがあるなら、
そこで制御できないか考える。
他に影響なければタイマーコントロールみたいなものは使えるか。
回答をありがとうございました。
今回は、整理するために自分たちでバーコードを作ってやっています。
オリジナルの為、JANコードには触れることはありません。
ただ、参考にしていたのは確かですが。
今回は補助プログラムを作っているので、バーコードの設定変更は
出来ませんでした。改行コードがないということはこんなに大変なのかと
つくづく思いました。
No.4
- 回答日時:
フォームの挿入後処理は同じことかも
しれないので、スルーしてください。
そことで、一旦、非連結のテキストボックスに
入れて、改行コードを付加して当該のテキストボックスに
入れる二段構えはどうですか。
その場合の非連結のテキストボックスの可視はいいえ
で設定していてもいいのではと思いますが。
No.3
- 回答日時:
フォームの挿入後処理でイベントがとれませんか。
Private Sub Form_AfterInsert()
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Name = "該当テキストボックス名" Then
'処理
Exit For
End If
Next ctl
End Sub
のような感じ。
回答ありがとうございました。
私が悪いのですが、利用しているアクセスは「2000」です。
「挿入後処理」のイベントがありませんでした。
バージョンをはっきりさせなくてすみませんでした。
No.2
- 回答日時:
「変更時」イベントで
テキストボックスの Text プロパティの長さを調べましょう。
プロパティを省略すると、Value プロパティが参照されます。
Value プロパティの値は、フォーカスを移動させるなりしなければ、
変化しません。
回答ありがとうございました。
「変更時」を使うと値の変化がトリガーになるのですね。ありがとうございました。
しかし、この方法でも、フォーカス移動が必要となるのですね。
バーコードリーダーが改行コードを送らないため、フォーカスを移動させる方法が
今のところ見当たりません。
テキストボックスの文字数を数えて、規定数になったら sendkeys chr(13)を
送信し、次のフォーカスに移動したいところなのですが。。。。
やはり、難しいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで数値型のフィールド...
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
フォームで入力しても反映されない
-
このオブジェクトに値を代入す...
-
Accessで小数の入力について
-
入力規則違反-任意のエラーメ...
-
日付のテキストボックスに(例...
-
Accessで西暦の年だけ表示したい
-
Access2007 textboxに入力でき...
-
Access VBA でのフォーム名の取...
-
ACCESS2000のフォームからの入...
-
ファイルメーカで経過月数を出...
-
アクセスのテキストボックスの...
-
ファイルメーカーで排他制御
-
Excelで入力したデータを自動的...
-
アクセス2003 入力規則
-
Accessのふりがな自動入力
-
自分のIPアドレスについて
-
Accessで主キーの最終番号を取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
フォームで入力しても反映されない
-
Excelで入力したデータを自動的...
-
このオブジェクトに値を代入す...
-
アクセスのテキストボックスの...
-
ユーザーフォームで数字にカン...
-
Access2007 textboxに入力でき...
-
Access(office)のマクロの「値...
-
日付のテキストボックスに(例...
-
アクセス コンボボックスのリ...
-
フォームテキスト内文字の縦位...
-
sqlldrの使用方法について
-
Accessで小数の入力について
-
ACCESS 時間の入力方法
-
入力規則違反-任意のエラーメ...
-
EXCELのユーザーフォームで入力...
-
ACCESSのテキストボックスの連...
-
Access2007、フォームのテキス...
おすすめ情報