• 締切済み

Accessのフォームでデータを入力すると、テーブルと一致するデータをあるフィールドに代入してしまうことは可能ですか?

本来のAccessの使い方ではないかもしれませんが・・・。 あるフォームで品番を入力すると、品番マスターなるテーブルから値を 検索して一致したフィールド(品名・数量)の値を直接フォームの フィールドに代入してしまうことは可能ですか? マクロの値の代入というものを使ってもうまくいきません。 また、クエリーを使えば、品番を入力すれば品名・数量が出るように することはできるのですが表示上だけですので、フォームに直接値 が入力されるようにしたいのです。 方法がうまく思いつきません。どうかお知恵をお貸しください!!

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

コンボボックスを使えば簡単に出来ます。 フォームにコンボボックスを作ります。ツールボックスから作成してもウィザード が開くので順に進めます。テーブル又はクエリの値を表示するを選択します。 次にテーブルから品番マスタを選択し、品番・品名・数量を選択し進めます。 表示しないキー列(推奨)のチェックを外すと品番・品名・数量が表示されます。 次に選択可能なフィールドで品番を選択し、次のフィールドに保存するで品番を 選択してコンボボックスを作り、そのコンボボックスのプロパティを開きイベント の更新後処理にコードビルダを使い下記の記述を入れてください。 例えばコンボボックスの名前がコンボ1として Private Sub コンボ1_AfterUpdate() 品名 = コンボ1.Column(1) 数量 = コンボ1.Column(2) End Sub これだけでコンボボックスで品番を選べば品名と数量はフォームの各フィールドに 代入されテーブルに保存できます。 コンボボックスのイベントプロシジャだけの記述で出来るので簡単だと思います。

mayself
質問者

お礼

ご回答ありがとうございました。 教えていただいた内容を試してみましたが、 なかなかうまくいきません。 VBの知識が足りないようです、もう少し頑張ってみます。

  • oka123
  • ベストアンサー率31% (69/219)
回答No.2

こんにちわ 一例を書きます 1.品名マスターを対象とするコンボボックスを作成 2.そのコンボボックスでのイベント処理として   「変更」のところへ、イベントフロシジアーを定義 3.イベントフロシジアーのなかでのsubプログラム   で、Dlookup命令にて品名・数量をフォームの   該当フイールドへmoveする   me!xxxxx=Dlookup(XX,XX,XX,XX) 宜しくお願いします

mayself
質問者

お礼

遅くなりましたが、ご回答ありがとうございました。 Dlookupを使うのですね。早速試してみましたが、 入力の仕方が悪いのか、うまくいきません。 VBの勉強が足りないようです。頑張ってみます。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

>本来のAccessの使い方ではないかもしれませんが・・・。  本来の使い方って言い方がわからないのですが、十分Access ので作成レベルだと思います。 >フィールドに代入してしまうことは可能ですか?  可能です。  ただマクロでやるよりもVBA 等を使用する方が現実的だと思います。 >することはできるのですが表示上だけですので、フォームに直接値 >が入力されるようにしたいのです。  表示しているラベルを、テキストボックスに変更して連結してあげて、値を変更できる様にしてあげればOKです。  詳しく書くと面倒ですので、ヘルプ等を参照して下さい。  ってこの質問のないようは、Access(バージョンがわからないの、ちょっと不安)のヘルプにやり方が載っていると思いますよぉ  または、サンプルデータベースを見れば、同様の事をやっている場所があります。

関連するQ&A