お世話になります。
次のようなレコードがあります。
「商品名」
「ロットNo,」
「数量」
それぞれの入力値の先頭(左1つ目)には英字でA.B.Cが付いています。
(商品は必ずA**** ロットは必ずB*** 数量はC***)
この場合に、フォームから入力するとして
先頭にAがあれば「商品」のテキストボックスに、
先頭にBがあれば「ロットNo,]のテキストボックスに、
先頭にCがあれば「数量」のテキストボックスへ入力したいのです。
(入力する順番を規定せず、ともかく3つが正しいレコードへ入力できればOKとしたい)
データの先頭の文字を評価して入力するテキストボックスへタブを飛ばすのは、
どうすれば良いでしょうか?
質問者のスキルは
レコード・クエリ・フォーム・マクロは一通り使え
VBモジュールは作成できない程度です。
入力用テキストボックス(テキスト0とする)を用意して、入力はこのテキストボックスにする。
商品名、ロット、数量のテキストボックスをそれぞれ用意する。
商品名のテキストボックスには、
=IIf(Left([テキスト0],1)="A",[テキスト0])
と書きましょう。
ロットはA→B,同様に数量はCに書き換えます。
入力用テキストボックスに記入すれば、それぞれのテキストボックスに入力されるはずです。
質問です。この「入力値」自体はどこに入力するのですか? 「商品」、「ロットNo,]、「数量」のテキストボックスのほかに、入力用のテキストボックスがあるということでしょうか? 勘違いでしたらすみません。
これから作りますので、入力用を設置するもしないも、どちらでも可能です。
・・・申し訳ありませんがコメントをオープンにしてありますので、質問ありましたらそちらへお願いできますでしょうか。。手持ちポイント不足気味で回答数が限られておりますので。
では、マクロを書きましょう。
テキスト0のプロパティのイベントタブを選択し、更新後処理をクリック。右端の・・・をクリックしてビルダの選択を起動。マクロを選択。
マクロは条件付として、条件1を
Left([Forms]![フォーム1]![テキスト0],1)="A"
として、アクションを「値の代入」を選択。
アイテムを
[Forms]![フォーム1]![テキスト2](商品のテキストボックス)
式を
[Forms]![フォーム1]![テキスト0](入力のテキストボックス)
とします。
マクロの2行目は、条件式のAをBにして、アイテムをロットのボックス、マクロの3行目を条件式をCにして、アイテムを数量のボックスを指定しましょう。
これでどうでしょうか?
ありがとうございます。
やはり私のレベルだと、そのマクロで組むのが良さそうですね。
詳しくありがとうございます。
ありがとうございます。
やってみます。