shiawasenataiyouアクセスVBAで決まった文字数しか入力できないようにしようツイートシェアはてブLINEPocketアクセス担当のまみです。データを入力する際に、伝票番号の桁数が決まっていたり、社員コードは5桁とか決まっていたりすることがあると思います。桁数が決まっているのに、桁が多かったり少なかったり。入力ミスってやっぱりあるんです・・・だけど、最初から決まった桁数(文字数)しか入力できなかったら、入力ミスが随分減りますね。そんな機能をVBAで作成してみましょう!フォームからデータの登録では、「商品コード」ファイルを開きましょう。「登録」ボタンクリックで、テーブルにデータが登録されるようにしてみましょう!(はてな君)データ入力フォームからデータの登録ができるようにコード書けるよ!(あいちゃん)はてな君はVBA面白くなってきてるみたいですね!どんどん吸収してくれてる。フォームからのデータ登録については下記の記事で確認してみてくださいね!【Access】vbaでフォームからレコード追加しよう2018年9月24日1「btn登録」ボタンを選択した状態で、プロパティーシートの2「イベント」タブを左クリックします。3「クリック時」を「イベントプロシージャ」にしてコードを開きましょう。Sub」の間に下記のコードを記載します。""'フォーカスを当てるMe!tx商品コード.SetFocusここまでは、上の記事でご紹介したデータ登録と同じです。動作確認をしておいてくださいね。コードをコピーされたい場合は下記の記事を参考にしてください。関連記事コードのコピー(はてな君)データ登録前にもやったことあるから大丈夫だよ~。動作確認しないとダメ~?(あいちゃん)動作確認って大事なんです!エラーが起こった時に、ここまではちゃんと動いていたってわかっていれば、それ以降の作業のどこかに間違いがあるってわかるでしょ?だけど、最初から動作確認してなかったら・・・どこが悪いのやら・・・(はてな君)そっかぁ。データ登録は出来てるはずだからって思ってたら実はデータ登録の部分が間違ってたとかあるんだぁ。動作確認とっても大事なので、楽しみながらやってくださいね。忘れるところでした!動作確認して気が付いてくれていたかもしれません。Sub」の間に下記のコードを追加しておいてくださいね。必須項目が入っていないとメッセージボックスが表示されるようにしていますが、その後は、「OK」を左クリックしたら、フォーカスがあたるようになって欲しいですね!(はてな君)「Me.tx商品コード.SetFocus」とかいれたらいいんだ!(あいちゃん)どこに入れたらいいかもわかるかな?(はてな君)えっと~。メッセージボックスのあと!「Me.tx商品コード.SetFocus」「Me.tx商品名.SetFocus」「Me.tx金額.SetFocus」をそれぞれのメッセージボックスの後に入れておきましょう!文字数の制限ようやく今回の本題、文字数を制限してみましょう。商品コードは必ず5桁と決まっているとしましょう。5桁よりも多くても少なくても入力できないように設定してみましょう!(はてな君)そんなことができるんだ!すごいね!1「tx商品コード」を選択した状態で、プロパティーシートの2「イベント」タブを左クリックします。3「フォーカス喪失時」を「イベントプロシージャ」にしてコードを開きましょう。Sub」の間に下記のコードを追加しましょう。If「len」って文字数を数えてくれる関数なんです。Len(tx商品コード)でtx商品コードの文字数を数えてくれるので、5文字じゃなかったら、「桁数が違います」ってメッセージボックスが表示されるようにしています。Trueは、tx商品コードからフォーカスが移動しないようにしてくれます。アクセスvbaフォーカスを移動させない方法!2018年10月8日さっそく「F_データ入力」をフォームビューで開いて動作確認してみましょう!(はてな君)桁が多くても少なくてもメッセージが出た!5桁になるまでカーソルも動かないから桁数を間違えてって入力はなくなるね!まとめデータ入力って気をつけていてもやっぱり入力ミスってあるんですね。