• 締切済み

Accessで値参照するには

AccessでExcelのVlookみたいなことをしたいのですが。 [商品テーブル]の中に“商品コード(主キー)”と“商品名”があります。 [売上テーブル]を[売上フォーム]とし、“商品コード”を入力すると、自動的に[商品テーブル]の“商品名”が出るようにしたいのです。 商品名が多数あるため、コンボボックスにはしたくありません。 どうしたらいいですか。

みんなの回答

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

ご要望ではフォームで、ということですので、 私もDlookupが使いやすいかなと思います。 なお、番外編となってしまいますが、 もう一つの方法としては、クエリでもできます。 フォームを作るまでも無いケースで、 でもデータシートビューで処理したい場合・・・などです。 [商品テーブル]の“商品コード(主キー)”と“ [売上テーブル]の“商品コード”とをリレーション(内部結合で)させ、 クエリを作るだけです。 表示するのは [売上テーブル]の主キーなど、や、 [売上テーブル]の“商品コード” [商品テーブル]の“商品名” です。 あとはそのクエリを開いて、[売上テーブル]側の“商品コード”を 入力すれば、他のフィールドに移動したタイミングで [商品テーブル]の“商品名”が自動的に表示されます。 少し自由度が下がりますが、そのクエリをソースにして フォームを作れば、そのようなかたちでも行けます。 でもフォームではDLookupやVBA+SQLなどを使うほうが良いと思います。 頑張ってください。

yukorin_t
質問者

補足

わかりません。 もういいです。

全文を見る
すると、全ての回答が全文表示されます。
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

accessにはDLookup関数があります。 インデックス(該当レコードが複数ある場合)や、パフォーマンス上問題がある場合は、SQLで該当レコードセットを検索する場合もあります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2000:Excelにエクスポート→コンボボックスの値が別フィールドになる

    Access初心者です。お願いします。 コンボボックス参照元テーブルがあり、そこに「ID」、「商品名」のフィールドがあります。 「ID」はオートナンバー型の主キーとなっています。 「商品名」はテキスト型です。 他に「購入一覧」というテーブルがあり、「店コード」、「商品名」、「購入年月日」のフィールドがあります。 こちらは「店コード」が主キーです。 「商品名」フィールドにコンボボックス設定がしてあります。 また、これらと連結したフォームがあり、そこからデータを入力していく方法となっています。 そこで「購入一覧」テーブルをExcelへエクスポートすると、「商品名」の値が「商品名」の名称ではなく「ID」になってしまいます。 <コンボボックス参照元テーブル>   ID  商品名   1   りんご   2   帽子   3   バナナ <Excelへエクスポート後の結果>   店コード  商品名  購入年月日    YY-01    1    2003/6/15    ON-12    3    2003/7/20    SK-13    2    2004/1/22 これをどうにか「ID」の方でなく、きちんと「商品名」にならないものでしょうか。 初めは「ID」が主キーのせいかと思い、「商品名」にし直したり、「ID」フィールドを削除したりしましたが、それだとテーブルにもフォームにも値が表示されなくなったり、選択のプルダウン上では表示出来ても、いざ選択したらレコード上には表示されず空白になったりとメチャクチャになりました。 ちなみに、エクスポート途中にある、「書式を保存」にすると「商品名」がちゃんと表示されます。 でもそれだと同じブック中の別ワークシートとしてはエクスポート出来なくなります。 これではあとでExcel上でまとめる作業が増えてしまいます。 何とか「商品名」の値が表示されるように出来ないものでしょうか。 Win2000/Access2000/Excel2000

  • Access コンボボックスの次の値に移動

    Microsoft Accessでフォームを作りました。コンボボックス1の値はテーブル1から参照するようになっています。このフォームにボタンを追加して、ボタンを押すとコンボボックスの値が一つ下の値に移動するようにしたいです。どんなコードを書けば良いですか。

  • 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)

  • アクセス2010の操作について

    こんばんは! アクセス2010を勉強しておりますが、さまざまの本を読んでもインターネットで検索しても、なかなか基本を理解できず又周囲にも質問できる人がいなく困っております。 以下の内容について数点の質問をさせて頂きますのでご指導をお願いいたします。 作成内容。 社員の成果を入力できるフォームを作成したく、保存したいデータは社員名、社員コード、成果です。社員名は、コンボボックスから選択を行いたい。(できれば社員名を表示すると、自動的に社員コードも表示したいのですが)以下の方法で作成したのですが、うまくできません(質問項目は下段です) ~作成の流れ~ 〇テーブルを作成・・・以下の2つのテーブルを作成し社員データを予め入力。 ・社員マスタ・・・・・・(フィールドは2つ)  「社員名」(テキスト型)  「社員コード」(テキスト型) ※主キー ・入力テーブル・・・・(フィールドは3つ)  「ID」(オートナンバー型)  「社員コード」(テキスト型)  「成果」(テキスト型) ※主キー 〇「社員マスタ」「入力テーブル」の2つのテーブルからクエリを作成。  ・社員コード同士を結合線で結ぶ(自動的に結ばれます)    (フィールド)  ID            社員名     社員コード   成果  (テーブル)   入力テーブル   社員マスタ  社員マスタ   入力テーブル 〇作成したクエリを基にフォームを作成  社員名をコンボボックスから選択できるように変更(値集合ソース→社員マスタ)  社員名をコンボボックスから選択し、社員コードを入力。成果を入力しようとすると。  入力できません。 (質問です)  (1)成果を入力するためにキーボードを押すと、文字が出ずにエラーメッセージ「レコードを追加でき ません。テーブル"入力テーブル"の結合キーがレコードセットにありません」と表示されますがなぜ でしょうか?  (2)、(1)でエラーメッセージが出ても保存を押すと、新規入力画面のコンボボックスに先ほどの入力 内容が追加されてしまうがなぜでしょうか?  (3)クエリとリレーションシップの使い分けの判断は?(今回はクエリから結合線で結びましたが、リレ ーションシップでも似たような事ができます)  (4)入力テーブルのフィールドは上記の3つでよろしいのでしょうか?  (5)このようなものを作成する時の手順を教えて頂けると非常に助かります。 よろしくお願いいたします。  

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • accessのコンボボックスについて

    質問があります。下記のようなテーブルがあります。 ▼商品情報テーブル  ・商品ID (番号はオート。キー)  ・商品番号(自社で設定している商品ごとの番号)  ・商品名 これを「受注伝票」フォームに使用します。 商品番号をコンボボックスで指定すると 商品名が別のテキストボックスに自動で表示。 もし登録されていない商品の場合には 商品番号と商品名をその場で登録して商品情報テーブルに反映させたい。 コンボボックスで選択する際はID順ではなく、 商品番号の昇順で並び替えたいと思います。 商品番号は数値ではなくテキストになっています。 弊社では「i0001、i0002...」のように、商品番号の頭に「i」が付くからです。 ACCESSのバージョンは2002です。 どうぞよろしくお願いいたします。

  • ACCESSについて

    Accessの入力フォームについて教えてください。 現在のテーブル構成の一部↓ [学生]テーブル〔主キー:学生コード〕 学生コード 氏名 コースコード [コース]テーブル〔主キー:コースコード〕 コースコード コース名 現在入力フォーム作成に当たって 入力されるテーブルには事前に学生コードだけは全て はいっています。 入力フォーム上で学生コードに対応する氏名を表示することはできたのですが、コース名を表示させたいのですができません。 誰かわかる人がいれば是非ご教授いただきたいのですが よろしくお願いいたします。

  • access 2007 のフォームの日付について

    access 2007 のフォームの日付について こんにちは さっそくですが質問させていただきます 立山秀利さん著の「ツボとコツがゼッタイにわかる本」で access2007の勉強をはじめたのですが、 二つのテーブル、 「注文履歴」  【フィールド:注文ID(主キー)、商品コード、個数】と、 「商品マスター」【フィールド:商品コード(主キー)、商品名、単価】を作成し、 商品コードを結合フィールドとして、リレーションを作ったのですが、 注文履歴のテーブルに、フィールド「日付(受注した年月日、書式は日付s )」を追加して、 作成→フォーム→その他のフォーム→フォームウィザードで、 この二つのテーブルから、by注文履歴のフォームを作成したのですが、 注文履歴のテーブルでは正しく日付が表示されていたのですが、 フォームの日付では#が十個ぐらいならんで、表示されてしまいました フォームでも日付が正しく表示されるようにするには、どのようにすればよいのか どなたか、回答していただけないでしょうか よろしくお願いします

  • アクセス2013の値集合ソース内の検索か抜き出し

    アクセス2013のフォームのコンボボックスの『値集合ソース』内に書かれたSQLコードの検索か抜き出しはできませんか。 ※書き方がよくなかったので再投稿しています。 アクセス2013でゴリゴリに作られた画面があります。 そこで使われているテーブルを検索して影響範囲の調査をしたいのですが、検索しても『値集合ソース』内に書かれたSQLコードにはヒットしてくれません。 どの画面とどの画面のどこでそのテーブルが使用されているのかが知りたいですが、 コンボボックスとその『値集合ソース』を多用しているために困っています。 『値集合ソース』内に書かれたSQLコード内のテーブルを検索する方法か、 フォームに書かれた『値集合ソース』のコードをテキストで抜き出す方法はありませんか。

  • コンボボックスの2列目の値を表示させる方法はありま

    アクセス2003です。 コンボボックスの2列目の値を表示させる方法はありますか? テーブル1には ID 会社名 1 山田建設 2 田中株式会社 といれ、 テーブル1をレコードソースとするフォームを作り、コンボボックスを設置し そのコンボボックスのプロパティは 値集合タイプ:テーブル/クエリ 値集合ソース:テーブル1 列数:2 にしました。 この場合、コンボボックスで値を選択した後は、一番左側の数字がコンボボックスに入力されますが 左から2列目の値を表示させる方法はありますか? IDと会社名のフィールドを順番を変えることなく、IDが左、会社名が右にしたいです。 エクセルで例えると http://www.moug.net/tech/exvba/0090021.html と同じようなことをアクセスで行いたいです。 プロパティではなくエクセルのようにVBAで配列を使うしかないのでしょうか?(コードもわかりませんが) よろしくお願い致します。

専門家に質問してみよう