- ベストアンサー
フォーム上の入力した値に基づく代入
お世話になっております。 支払依頼作成ツールを作成しているのですが、このような事ができるかどうかわかりませんが 質問します。 Aというフォーム上にて、支払依頼情報(取引先コード・支払日・支払金額)を入力します。 そこで、取引先コードを入力した際に、フォーム上にその取引先の振込情報を表示させたいのですが *取引先テーブル(取引先番号、取引先名、振込先銀行支店名、口座番号、預金種別、名義人)はこのような構成です どうしたらいいものかと思い相談させていただいております。 以上宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
方法は2つ。 1. Dlookup 関数を使う -->Dlookup 関数は動作が遅いので、低速 PC でデータ量が増えるとイラ イラします。私なら使いません。 2. ComboBox コントロールを使う -->ComboBox コントロールは高速で、さらにオートコンプリートが使えま す。私は好んで使います。 という訳で 2. の方法です。1. の方法は WEB 検索ですぐ見つかるでしょう。 【 ComboBox を利用する方法 】 1. フォームに非連結の ComboBox コントロールを配置 ウィザードが起動したら、次のように設定していきます。 1)[テーブルまたはクエリの値を コンボボックス に表示する]-[次へ] 2)テーブル[取引先]を選択し、[次へ] 3)全項目追加し、[次へ] 4)取引先番号、取引先名 以外の項目はフィールドの幅を 0 にして 非表示にします。 5)[選択可能なフィールド]を 取引先番号 に 6)あとは適当にウィザードをすすめて終了 2. 1. で作成した ComboBox コントロール の名前を cmbClient に変更 3. フォームに非連結の TextBox コントロールを配置 プロパティーページの[コントロールソース] に次の式を入力 =cmbClient.Column(1) です。 Column(1) の数字を変えると他のフィールドのデータも表示されますよ。 例えば、 = "得意先:" & cmbClient.Column(1) & " 口座:" & cmbClient.Column(2) & " " & cmbClient.Column(4) & " No." & cmbClient.Column(5) & " " & cmbClient.Column(6) なんて感じにするか、項目別に別の TextBox に用意して表示させてもいいでしょう。 VBA なら Change イベントで ラベルの Caption を書き換えてもいいです。 この方法のメリットは”高速”であること、”オートコンプリート”が使える ことですね。
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
簡単なのは フォーム上に表示だけするのであればAフォームのレコードソースでSQLステートメントに取引先テーブルを追加して取引先コードで結合させ(リレーション取っていれば自動で表示されます)取引先テーブルの取引先番号(取引先コードと同じなら不要)・取引先名・振込先銀行支店名・口座番号・預金種別・名義人の各フィールドを追加しレコードソースとして持てば後はフォームのデザインでフィールドリストからフォームへ配置するだけで表示されるようになります。 これが一番簡単。 他の方がコンボボックスを使ってとありますがこれも簡単に出来ますね。 取引先コード(取引先コード=取引先番号として)のコンボボックスをウィザードでフォーム上に作りコンボボックスで値集合ソースを取引先名・振込先銀行支店名・口座番号・預金種別・名義人を表示するようにして例えば列数は6で列幅は1Cm;1Cm;0Cm;0Cm;0Cm;0Cmとして取引先コード・取引先名だけ見えるように設定しフォーム上の配置した取引先名・振込先銀行支店名などの表示用の非連結テキストボックスへ代入するとかでも良いと思います。 コンボボックスの更新後処理に Me!Text1 = コンボボックス名.Column(1) の様に記述すればText1というコントロールにコンボボックスの2番目の値を代入する事ができます。
お礼
ありがとうございます。 参考になり、問題解決ができました。
- mshr1962
- ベストアンサー率39% (7417/18945)
アクセスですよね。それなら取引先コードの入力にコンボボックスを使用するのをお勧めします。 詳細は下記URLを参照 http://support.microsoft.com/kb/879798/ja
お礼
ありがとうございます。 参考になり、問題解決ができました。
お礼
ありがとうございます。 参考になり、問題解決ができました。