• ベストアンサー

Accessでコードを入れると名前がでるようにしたい

Accessで顧客コードを入れると顧客マスタ通りの名前、住所TELがフォームに自動で出て、商品コードを入れると品物名が出るようにしたいのですが。 コードと商品名のはいったテーブルとフォームは作ったのですが・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • simatyuu
  • ベストアンサー率75% (3/4)
回答No.1

はじめの手順から書きます。 顧客コードと氏名・住所・TELが入ったテーブルを作ります。(顧客マスタの事) >コードと商品名のはいったテーブルとフォームは作ったのですが・・・ と言うことですので、商品用のテーブルはできています。 もう1つ、テーブルとテーブルのリレーション(関連性)を設定しやすいように、 オートナンバーを設定した主キー用のフィールドと、 顧客コードと、商品コードを設定したテーブルを作ると良いでしょう。(以下Cテーブルと呼びます。) あとは、テーブルのリレーション設定を行います。 リレーションシップボタンをクリックし、 テーブルをすべて表示させます。 次に、顧客用のテーブルから顧客コードをCテーブルの顧客コードへとドラッグし、参照整合性にチェックを入れます。 そして、作成をクリックします。 同様に、商品コードの入ったテーブルから、 Cテーブルへとドラッグし、参照整合性にチェックを入れます。そして作成をクリックします。 続いて、クエリの作成に移ります。 オブジェクトをクエリに変更します。 デザインビューでクエリを作成し、 テーブルの一覧を表示させます。 一覧から、まず Cテーブルのオートナンバーを設定したフィールドを ダブルクリックします。 次に、Cテーブルの顧客コードをダブルクリックします。 次に、顧客マスタに入っている名前・住所・TELの順にダブルクリックしていきます。 次に、Cテーブルの商品コードをダブルクリックします。 そして、商品名をダブルクリックして 必要なフィールドの設定が完了します。 クエリは、名前をつけて保存しましょう。 (以下では、Q顧客商品と呼びます。) できた、Q顧客商品を ウィザードを使用してフォームを作成するから 選択して、完了。 これで、コードを入れるだけで、 テーブルから名前・住所・TEL・商品名が 自動表示されるようになります。 文章で書き並べた感がありますので、 分かりにくければ、また、ご質問ください。では。

kiskegoo
質問者

お礼

具体的に書いていただいてわかりやすかったため、何とか最後までたどり着くことができました。 おかげでコードを入れると商品名などが出るようになりました。 ここでどうしてもわからず困っているのが、最後の >できた、Q顧客商品を >ウィザードを使用してフォームを作成するから >選択して、完了。 のところを、新しいフォームとしてでなく既存のフォームにつくるやり方です。お手数をおかけしますがアドバイスいただけないでしょうか。

kiskegoo
質問者

補足

打ち込むとテーブルにデータが残っていくフォームがすでにあり、ここに、今回のコードを打ち込む項目を追加したいです。 アドバイスいただいた方法で作成したクエリのデータを既存フォームのコントロールソースで表示し無理やり持って行ってみましたがだめみたいです。

その他の回答 (4)

  • simatyuu
  • ベストアンサー率75% (3/4)
回答No.5

なかなか、返答がなく ヤキモキされたところもあったと思いますが、 完成されて良かったです。 テーブルで作ったものを クエリで組み合わせ それをフォームで呼び出す が基本の流れです。 印刷を工夫したい場合は、レポートを使うのも 良いでしょう。 そして、ソフト的に 簡単に操作をしたい場合は、 フォームにボタンを作成して、 クリック時にマクロを実行するようにします。 少しややこしい話になるかもしれませんが、 アクセスは テーブル間の関連性が大事です。 特に、1対多の関係が 整理できていると、良いものを作りやすくなります。 ※1(一種類ずつデータが登録されているフィールド)  多(何回も同じデータが登場するフィールド)

kiskegoo
質問者

お礼

ご指摘のとおり、「基本の流れ」「テーブル間の関連性」が作っていてもまだぼんやりとしているレベルです。 おかげでもう少しで印刷までたどり着けそうです。 ありがとうございました。

  • simatyuu
  • ベストアンサー率75% (3/4)
回答No.4

もう少しでできそうですね。 ○「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリ を、既存のフォームに設定した後、 テキストボックスを右クリックし、 表示させたいフィールド名を コントロールボックスから選択します。 それで、できると思います。 アドバイスが遅くなりましたが、もう少しでできそうなので、 頑張ってください。多少説明の悪いところもありますが、完成までお付き合いできればと思います。

kiskegoo
質問者

お礼

おかげさまで何とかできました。 イメージとは違うので復習もかねてもう一度はじめから作り直してみようと思います。 お手数をおかけいたしました。

  • simatyuu
  • ベストアンサー率75% (3/4)
回答No.3

1件目の回答に対してのコメントで、 「コードを入れると商品名などが出るようになりました。」と言う内容がありました。 そのクエリと同じように、 「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリを作成します。 それを、今のフォームで表示されるように 設定すればよいでしょう。 設定の仕方は、 ○フォームセレクタを右クリック⇒プロパティ。 ○レコードソースからクエリを選択。 です。 ただ、既存のフォームなので、 テキストボックスのコントロールソースを 変更する必要があるでしょう。 29日に時間があるので、 画像入りのHPでも作成してアップいたしましょうか? ※ポイントは、  クエリ、フォームで入力したデータは、  結果的にテーブルに保存されると言うことです。  (テーブルから、フォームにデータを呼び出しても、  クエリで、仮想のテーブルを作り、フォームに  呼び出しても、データは結果的にテーブルに保存  されます。)  

kiskegoo
質問者

お礼

○コードを入れると商品名などが出るクエリ ○フォームセレクタを右クリック⇒プロパティ。 ○レコードソースからクエリを選択。 まではアドバイスのおかげでできました。 (緑色の三角が表示されていいのですよね) ○「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算されるクエリ も、もう少し頑張ればできそうです。 ○テキストボックスのコントロールソースを 変更する ここがさっぱりです。 お世話になりすぎて恐縮していますが、よろしくお願いします。  

  • simatyuu
  • ベストアンサー率75% (3/4)
回答No.2

フォームの用途が分かれば適切なアドバイスができるのですが、、、 「テーブルにデータが残っていくフォームがすでにあり」 というのは、どのようなデータが残っていくようになっているのでしょうか。 商品コードと商品名を登録したり 顧客コードと顧客名を登録するためのフォームであれば、 そこに、上記コードを呼び出すテキストボックスを 入れるのは、おすすめしません。 ただ、どの顧客にどの商品を販売したのか あらわすようなものなら(いわば売上データを入力するフォーム)おすすめします。 方法としては、 (1)既存のフォームを選択⇒デザインビューで開きます。 水平ルーラーの左、垂直ルーラーから見れば上 (ウィンドウの左上に)灰色の□(四角)があります。 (2)フォームセレクタと言う名前なのですが、そこを 右クリック⇒プロパティとします。 (3)レコードソースから、 新規に作成していただいたクエリを選択すれば上手くいくでしょう。 あとは、テキストボックスのコントロールソースを 変更する必要があるかもしれません。 ※上手くいかないようなら どのようなデータを入力するフォームなのか教えていただければ、適切なアドバイスができると思います。 よろしくお願いいたします。

kiskegoo
質問者

お礼

フォームから「日にち」「商品コード」「商品」「顧客コード」「顧客名」「金額」を入力すると「消費税」「合計」が計算され、テーブルにデータが溜まっていきます。そのフォーム配置のまま入力した文字だけをドットプリンターで印刷しています。▲(向きが違いますが)を押し次次にデータを入力していくようになっています。 今回、「商品コード」「商品」それぞれ入力しているので、「商品コード」を入れると「商品」が自動で出るようにして手間を減らせればと思い質問しました。 (わかりにくい書き方ですいません) >(1)既存のフォームを選択⇒デザインビューで開きます。 >水平ルーラーの左、垂直ルーラーから見れば上 (ウィンドウの左上に)灰色の□(四角)があります。 >(2)フォームセレクタと言う名前なのですが、そこを 右クリック⇒プロパティとします。 >(3)レコードソースから、 今回教えていただいた方法だと、緑色の小さな三角がすべてのテキストボックスの左上に表示されます・・。 可能であれば、引き続きアドバイスよろしくお願いいたします。

関連するQ&A

  • Access2000 フォームからレコード検索

    Access2000で質問です。 「顧客テーブル」を作ります。 顧客テーブルには以下のフィールドを設けます。 顧客ID(主キー) 名前 TEL 住所 変更住所 顧客IDから住所まではすでにデータが入っています。 「変更住所」に新しくデータを入れていきます。 その際に、フォームを利用したいと思っていますが、 新規フォーム(何もデータが入っていない)に顧客IDを入れたら、すでに顧客テーブルに入力されている名前、TEL、住所がパッと表示され、変更住所だけが空欄で表示されるようなフォームを作りたいと思います。 どのような方法がありますでしょうか? ぜひお知恵を貸してください。よろしくお願いいたします。

  • アクセスで重複と該当なしコードは入力不可にしたい

    アクセス97で顧客管理をしています。 まだなかなか使いこなせないでいるところがあるのですが、どなたかわかりましたらよろしくお願いします。 テーブルAに1000件以上のレコードがあります。主なフィールドはコードと顧客名と住所などの情報です。そのテーブルにレコードを追加していくのに、フォームから行っています。フォームプロパティのデータ入力を「はい」に設定してるだけです。 ここで問題が2つあります。 (1)例えばフォームからコードを入力する際に、正しいコードであれば良いのですが、間違ったコードを入力してしまってもテーブルに追加されてしまうのです。今はその都度テーブルを開いてその行を削除しています。 正しいコードかコードでないかの判断はテーブルBに存在するコードによって決定します。テーブルBになければ全てエラーにしたいのです。 (2)コードが重複してもいけないのですが、テーブルAのコードのプロパティを重複なしにしているのですが、フォームに一度重複したコードを入力してしまうと、一度開いたフォームを強制終了しなければ先に進めません。 (1)においても(2)においても、例えばメッセージボックスが開いて「正しいコードを入力して下さい」のようなものが開いて、OKをクリックしたら、またコードの入力から始まるような方法はないものでしょうか? ちなみにその顧客コードを入力したら、顧客名が自動的に開く下記VBAをフォームに組んでいます。 Private Sub 店番_AfterUpdate() Me![名前] = DLookup("顧客名", "テーブルB", "顧客コード=" & Me![コード] & " ") End Sub 何卒よろしくお願いします。

  • access コンボボックスの次

    顧客管理・商品管理の簡略化を目指している初心者です。商品マスター・仕入先・販売先というテーブルを作成、商品情報の入力・閲覧のためのフォームを作ろうと思っています。 1)商品マスターテーブルには、仕入先コードと販売先コードが入っています。フォーム上では仕入先名・販売先名も確認したいのですが、 「商品マスターテーブルにそれらを追加したクエリを作成 → クエリからフォームを作成」 という方法でよいでしょうか。 2)フォーム上で仕入先コードと仕入先名のコンボボックスを設置します。コードを選択すると自動的に次の欄に仕入先名が反映されるようにする方法を教えてください。 おそらく非常に初歩的な質問かと思いますが、マニュアルを見たり検索をかけたりしても要領を得ません。アドバイスをどうぞよろしくお願いいたします。

  • Access メインフォームにすべてのテーブルを

    アクセス 超初心者です。 お恥ずかしいのですがまた 超初歩的なことで困っています。 テーブルが二つあり、 一つは 基本データテーブルで 顧客コード(主キー)- 社名ー住所 もう一つは 商品履歴で 顧客コード- 商品 - 数量 このような感じです。 で、顧客コードでリレーションシップを設定して メインフォームに顧客コード・社名・住所、 サブフォームで その顧客の 商品・数量を表示させているのですが 商品履歴テーブルにデータが無い顧客データは メインフォームに表示されませんよね? どうしたら全件表示されるようになりますか?

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • filemaker pro9 初心者です

    FileMaker pro9 評価版を使って売上管理表を作っています。 超初心者なのでよろしくお願いします。 顧客ごとにIDを設定し、そのIDから 名前、住所 等が自動的に呼び出されるようにしたいのですが、 リレーションが上手く出来てないためか一部呼び出されません マスターに使用しているテーブル:「顧客マスター」 フィールドは 【顧客ID】【顧客名】【〒】【住所】です そして新たに「売上テーブル」を作りました フィールドは 【顧客コード】【お客さん名】【ラベル用〒】【ラベル用住所】です I 売上のあった顧客のみ住所を表示してラベルに印刷したいのでここに住所も出るようにしたいんですが、 名前だけちゃんと呼び出されてあとの分が呼び出されません。 リレーション一覧:(「」はテーブル【】はフィールド →はリレーションです) 「売上テーブル」【顧客コード】→「顧客マスター」【顧客ID】 「売上テーブル」【お客さん名】→「顧客マスター2」【顧客名】(リレーションを作るときに自動的に2が作成されました 以下同) 「売上テーブル」【ラベル用〒】→「顧客マスター3」【〒】 「売上テーブル」【ラベル用住所】→「顧客マスター4」【住所】 となっています。 そして、【顧客コード】【お客さん名】【ラベル用〒】【ラベル用住所】には計算式が入っており、それぞれ Lookup (顧客情報マスター2::顧客名;0) Lookup (顧客情報マスター3::〒;0) Lookup (顧客情報マスター4::住所;0) となっております。 実は最初にお客さん名のみ作りそのときはうまく自動的に入力されたのですが、続いて〒、住所とやってみましたが全くでなく、0の値が出てしまいます。 オプション等は全く同じです。どこが間違っているのでしょうか? ヘルプを見てもわからず、ネットであれこれ検索してみても、質問レベルが低すぎるためか全く出てきません よろしくお願いします。

  • Accessについて

    Access初心者です。 Accessで顧客管理をするものを作成しているのですが 顧客のデータはエクセルよりテーブルへインポートしました。 (顧客名、ふりがな、住所、TEL。FAXなど) その後、個々の顧客のデータを検索して内容を観たい場合は フォームで作成すればよいのでしょうか? テーブルよりウィザードでフォームを作成して 「顧客名」の欄でコンボボックスで顧客名を選択して 個々の顧客の内容を観たいのですが、コンボボックスで選択しても 顧客名が変わるだけで、住所やその他の内容がついてきません。 フォームの画面が見やすくて良いのですが、フォームとは入力画面で 内容を確認する画面ではないのでしょうか? それともプロパティ他で何か設定する所があるのでしょうか? よろしくお願いします。

  • Access2007についての質問です

    Access2007を用いて、旅館の在庫管理をしたいのですが、 おおまかなイメージがつかず、手詰まり状態となってしまいました。 商品、商品注文、顧客のマスターを作成し、在庫テーブルを作ってクエリで現在在庫数を  現在在庫数: [総在庫数]-[現在出荷数]  のように表示させました。 各テーブルについては サービスマスター:ID、サービス名、価格 顧客マスター:ID、氏名、住所、電話番号 注文マスター:注文ID、顧客ID、サービス名、注文日、納品日 商品注文マスター:商品注文ID、顧客ID、商品名、注文日、納品日 商品マスター;商品ID,商品名、価格 となっています。 この後は、商品注文フォームから現在出荷数を随時更新できるようにしたいのですが どのように行うべきでしょうか。よろしくお願いします。

  • ACCESS リストの使い方

    お願いします! ACCESS2003で作成した「F商品マスタ」というフォームで、 「朝食名」という名前のリストボックスがあります。 そのリスト一覧は、「T朝食マスタ」という名前のテーブルから取得しています。 「T朝食マスタ」には、「朝食コード」「朝食名」のフィールドがあります。 「F商品マスタ」内にある「朝食名」のリストボックスで朝食コードを選択したら、 横にあるテキストボックスに「T朝食マスタ」の「朝食名」が表示されるようにしたいのですが、 どのようにすればよいでしょうか? ご回答お願い致します。

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

専門家に質問してみよう