- ベストアンサー
Accessでコードを入れると名前がでるようにしたい
Accessで顧客コードを入れると顧客マスタ通りの名前、住所TELがフォームに自動で出て、商品コードを入れると品物名が出るようにしたいのですが。 コードと商品名のはいったテーブルとフォームは作ったのですが・・・
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
はじめの手順から書きます。 顧客コードと氏名・住所・TELが入ったテーブルを作ります。(顧客マスタの事) >コードと商品名のはいったテーブルとフォームは作ったのですが・・・ と言うことですので、商品用のテーブルはできています。 もう1つ、テーブルとテーブルのリレーション(関連性)を設定しやすいように、 オートナンバーを設定した主キー用のフィールドと、 顧客コードと、商品コードを設定したテーブルを作ると良いでしょう。(以下Cテーブルと呼びます。) あとは、テーブルのリレーション設定を行います。 リレーションシップボタンをクリックし、 テーブルをすべて表示させます。 次に、顧客用のテーブルから顧客コードをCテーブルの顧客コードへとドラッグし、参照整合性にチェックを入れます。 そして、作成をクリックします。 同様に、商品コードの入ったテーブルから、 Cテーブルへとドラッグし、参照整合性にチェックを入れます。そして作成をクリックします。 続いて、クエリの作成に移ります。 オブジェクトをクエリに変更します。 デザインビューでクエリを作成し、 テーブルの一覧を表示させます。 一覧から、まず Cテーブルのオートナンバーを設定したフィールドを ダブルクリックします。 次に、Cテーブルの顧客コードをダブルクリックします。 次に、顧客マスタに入っている名前・住所・TELの順にダブルクリックしていきます。 次に、Cテーブルの商品コードをダブルクリックします。 そして、商品名をダブルクリックして 必要なフィールドの設定が完了します。 クエリは、名前をつけて保存しましょう。 (以下では、Q顧客商品と呼びます。) できた、Q顧客商品を ウィザードを使用してフォームを作成するから 選択して、完了。 これで、コードを入れるだけで、 テーブルから名前・住所・TEL・商品名が 自動表示されるようになります。 文章で書き並べた感がありますので、 分かりにくければ、また、ご質問ください。では。
その他の回答 (4)
- simatyuu
- ベストアンサー率75% (3/4)
なかなか、返答がなく ヤキモキされたところもあったと思いますが、 完成されて良かったです。 テーブルで作ったものを クエリで組み合わせ それをフォームで呼び出す が基本の流れです。 印刷を工夫したい場合は、レポートを使うのも 良いでしょう。 そして、ソフト的に 簡単に操作をしたい場合は、 フォームにボタンを作成して、 クリック時にマクロを実行するようにします。 少しややこしい話になるかもしれませんが、 アクセスは テーブル間の関連性が大事です。 特に、1対多の関係が 整理できていると、良いものを作りやすくなります。 ※1(一種類ずつデータが登録されているフィールド) 多(何回も同じデータが登場するフィールド)
お礼
ご指摘のとおり、「基本の流れ」「テーブル間の関連性」が作っていてもまだぼんやりとしているレベルです。 おかげでもう少しで印刷までたどり着けそうです。 ありがとうございました。
- simatyuu
- ベストアンサー率75% (3/4)
もう少しでできそうですね。 ○「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリ を、既存のフォームに設定した後、 テキストボックスを右クリックし、 表示させたいフィールド名を コントロールボックスから選択します。 それで、できると思います。 アドバイスが遅くなりましたが、もう少しでできそうなので、 頑張ってください。多少説明の悪いところもありますが、完成までお付き合いできればと思います。
お礼
おかげさまで何とかできました。 イメージとは違うので復習もかねてもう一度はじめから作り直してみようと思います。 お手数をおかけいたしました。
- simatyuu
- ベストアンサー率75% (3/4)
1件目の回答に対してのコメントで、 「コードを入れると商品名などが出るようになりました。」と言う内容がありました。 そのクエリと同じように、 「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリを作成します。 それを、今のフォームで表示されるように 設定すればよいでしょう。 設定の仕方は、 ○フォームセレクタを右クリック⇒プロパティ。 ○レコードソースからクエリを選択。 です。 ただ、既存のフォームなので、 テキストボックスのコントロールソースを 変更する必要があるでしょう。 29日に時間があるので、 画像入りのHPでも作成してアップいたしましょうか? ※ポイントは、 クエリ、フォームで入力したデータは、 結果的にテーブルに保存されると言うことです。 (テーブルから、フォームにデータを呼び出しても、 クエリで、仮想のテーブルを作り、フォームに 呼び出しても、データは結果的にテーブルに保存 されます。)
お礼
○コードを入れると商品名などが出るクエリ ○フォームセレクタを右クリック⇒プロパティ。 ○レコードソースからクエリを選択。 まではアドバイスのおかげでできました。 (緑色の三角が表示されていいのですよね) ○「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリ も、もう少し頑張ればできそうです。 ○テキストボックスのコントロールソースを 変更する ここがさっぱりです。 お世話になりすぎて恐縮していますが、よろしくお願いします。
- simatyuu
- ベストアンサー率75% (3/4)
フォームの用途が分かれば適切なアドバイスができるのですが、、、 「テーブルにデータが残っていくフォームがすでにあり」 というのは、どのようなデータが残っていくようになっているのでしょうか。 商品コードと商品名を登録したり 顧客コードと顧客名を登録するためのフォームであれば、 そこに、上記コードを呼び出すテキストボックスを 入れるのは、おすすめしません。 ただ、どの顧客にどの商品を販売したのか あらわすようなものなら(いわば売上データを入力するフォーム)おすすめします。 方法としては、 (1)既存のフォームを選択⇒デザインビューで開きます。 水平ルーラーの左、垂直ルーラーから見れば上 (ウィンドウの左上に)灰色の□(四角)があります。 (2)フォームセレクタと言う名前なのですが、そこを 右クリック⇒プロパティとします。 (3)レコードソースから、 新規に作成していただいたクエリを選択すれば上手くいくでしょう。 あとは、テキストボックスのコントロールソースを 変更する必要があるかもしれません。 ※上手くいかないようなら どのようなデータを入力するフォームなのか教えていただければ、適切なアドバイスができると思います。 よろしくお願いいたします。
お礼
フォームから「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算され、テーブルにデータが溜まっていきます。そのフォーム配置のまま入力した文字だけをドットプリンターで印刷しています。▲(向きが違いますが)を押し次次にデータを入力していくようになっています。 今回、「商品コード」「商品」それぞれ入力しているので、「商品コード」を入れると「商品」が自動で出るようにして手間を減らせればと思い質問しました。 (わかりにくい書き方ですいません) >(1)既存のフォームを選択⇒デザインビューで開きます。 >水平ルーラーの左、垂直ルーラーから見れば上 (ウィンドウの左上に)灰色の□(四角)があります。 >(2)フォームセレクタと言う名前なのですが、そこを 右クリック⇒プロパティとします。 >(3)レコードソースから、 今回教えていただいた方法だと、緑色の小さな三角がすべてのテキストボックスの左上に表示されます・・。 可能であれば、引き続きアドバイスよろしくお願いいたします。
お礼
具体的に書いていただいてわかりやすかったため、何とか最後までたどり着くことができました。 おかげでコードを入れると商品名などが出るようになりました。 ここでどうしてもわからず困っているのが、最後の >できた、Q顧客商品を >ウィザードを使用してフォームを作成するから >選択して、完了。 のところを、新しいフォームとしてでなく既存のフォームにつくるやり方です。お手数をおかけしますがアドバイスいただけないでしょうか。
補足
打ち込むとテーブルにデータが残っていくフォームがすでにあり、ここに、今回のコードを打ち込む項目を追加したいです。 アドバイスいただいた方法で作成したクエリのデータを既存フォームのコントロールソースで表示し無理やり持って行ってみましたがだめみたいです。