(access ) dlookupの抽出方法を教えてください

このQ&Aのポイント
  • DLookup関数を使用してデータベースのテーブルから抽出する方法を教えてください。
  • テーブル間で結合し、特定の条件を指定してデータを抽出する方法について教えてください。
  • フォーム上のテキスト入力欄に入力した値を使用して、他の関連するテーブルからデータを取得する方法を教えてください。
回答を見る
  • ベストアンサー

(access ) dlookupの抽出について

「会社テーブル」 **企業コード **商品コード *会社名 「商品テーブル」 **商品コード **担当者コード *商品名 「住所テーブル」 **担当者コード *担当者名 *住所 仮に上記のようなテーブルがあり、下記がその条件式です =DLookUp("担当者名","住所テーブル","[担当者コード] = " & [テキスト入力欄]) フォーム上の[テキスト入録欄]に 「**担当者コード」 の値を入力し、 担当者名 や 住所 を任意のテキスト枠に返します。 その方法で[会社テーブル]の会社名を返す場合はどのようにしたらいいのでしょうか 上記のテーブルの通り、会社名には 担当者コード が存在しておりません 企業コードや会社コードを入力するという方法は二度手間になるためやりたくありません フォームを作成して3つのテーブルを繫ぎ、下記の式で抽出しようと試みましたができません =DLookUp("会社名","フォーム","[担当者コード] = " & [テキスト入力欄]) どなたか方法を教えてください

noname#255190
noname#255190

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

仮のテーブル構成をみる限り、 ・入力があったものを使って、「商品テーブル」から商品コードを求め ・その商品コードを使って、「会社テーブル」を見るしかないと思います。 フィールドの記述の中で、 「**」は数値、「*」はテキスト、の違いになっていると仮定すると、 DLookUp("商品コード","商品テーブル","[担当者コード] = " & [テキスト入力欄]) で商品コードを求め、なかった時には Null になるので、Nz を使って 0 に Nz(上記のもの,0) ・・・・ ※1 ※※ 商品コード = 0 のものが存在するのなら、存在しない値になるように (※1部分は考えてください) ※1を使って =DLookUp("会社名","会社テーブル","[商品コード] = " & ※1)

noname#255190
質問者

お礼

ご教示ありがとうございます やはり難しいですか 最終結論を申しますと、30246kikuさんの意見を参考に商品コードの値を返す新枠を別途設けました。 そして、その新枠の値を参照して会社名を導くやり方で問題解決いたしました。 また、何かございましたら宜しくお願いいたします。m(__)m

関連するQ&A

  • Access2000のDLOOKUPについて

    Access2000にて収支管理のDBを作成中です。 フォームのDLOOKUPの設定についてお聞きしたいのですが、 テーブル 「00_Account code」に 「Account code」と「Account code テキスト」があります。 これを 「01_収支テーブル入力_フォーム」にて「Account code」入力時に「00_Account code」テーブルから「Account code テキスト」抽出しようと思い下記のような式を入れています。 =DLookUp("[Account code テキスト]","[00_Account code]","[Account code] =[Forms]![01_収支テーブル入力_フォーム]![Account code] ") しかしフォームにて[Account code]を入力してエンターをしても表示されず、一度フォームを閉じてから再度開くと表示されるという現象におちいっています。 これを入力→エンター時に表示させる方法はありますでしょうか? 何かの設定かと思うのですが・・・ぶつかっています。 どなたかお教え願えると助かります。よろしくお願いいたします。

  • DLookupがうまく出来ません

    アクセス2000を使ってます。 顧客台帳のフォームにCAコードのテーブルから「担当者」「リスト順」のデータを顧客台帳の営業部員コードのフィールドに営業部員コードNOを入力したら自動的に入力されるようにしたいのですがうまく出来ません。 担当者=DLookup("担当者","CAコード","営業部員コード="&営業部員コード) リスト順=DLookup("担当者","CAコード","営業部員コード="&営業部員コード) で設定しましたが自動入力されません。 ちなみに担当者・営業部員コード等はテキスト型ですが、営業部員コードにマウスを移動した時にはEmpty値って出ます。 どのようにしたら良いのでしょうか? 私は、アクセスは全くの初心者ですので詳しく説明していただけると助かります。 宜しくお願い致します。

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • Access DLOOKUPについて

    Access DLOOKUPについて こんにちは。Access2010でのDlookupについてお教えください。 ■注文テーブル オーダーID,商品コード,数量,お店番号 001,A01,1,お店1号 001,A02,5,お店1号 002,B01,3,お店2号 002,B02,3,お店2号 ※同一オーダーIDで商品コードが重複する事は無 ■確認用注文テーブル 商品コード,数量,お店番号 A01ですよ,1お店1号 B02です,3,お店2号 ※なんと、オーダーIDがありません。さらに商品コードに変な文字列も入っています。 ■やりたい事 フォームに「判定」というテキストボックスを配置しました。 コントロールソースで以下の条件にあっているなら○、あっていないなら×と表示したいです。 ○注文テーブル.商品コードと確認用注文テーブル.商品コードを比較。 注文テーブル.商品コードのデータが確認用注文テーブル.商品コードに含まれていること。 ○注文テーブル.数量と確認用注文テーブル.数量がイコールであること。 ○注文テーブル.お店番号と確認用注文テーブル.お店番号がイコールであること。 これらを満たしていれば、○、満たしていなければ×と表示したいです。 Dlookupでなくても、何か他に方法がありましたらお教えください。 宜しくお願いします。

  • Access非連結フォームから複数レコード挿入

    お世話になっております。 Access2003を使用しております。 <テーブル ”商品マスターT”> code   shouhin =========================== 1    チョコ 2    ラムネ 3    ジュース 4    団子 5    ガム <フォーム "商品入力フォーム"(非連結・単票フォーム)>      商品コード       商品名 1行目 [非連結(テキスト0)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト0])] 2行目 [非連結(テキスト1)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト1])] 3行目 [非連結(テキスト2)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト2])] 4行目 [非連結(テキスト3)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト3])] 5行目 [非連結(テキスト4)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト4])]  商品コードを入力すると商品マスターTより商品名を引っ張ってきます。 <テーブル "履歴T"> code2   shouhin2 ==============================  データは空です 上記のものがあるときに商品入力フォームで入力した行数分だけ テーブル履歴Tにレコード追加したいのですが・・・ そういったことは可能でしょうか?非連結フォームから複数レコード追加は難しいでしょうか? 以上宜しくお願いします。

  • アクセスのDLOOKUPについて

    DLOOKUPについて質問です。入力フォームにて製品番号を入れると製品名が出るようにして入力を楽にしたつもりでした。その方法はコントロールソースに=DLooKUP("品名","部番一覧表","部番='"&[部番]&"'")と入力しました。これは他の相談室の過去ログから拾いました。が、しかしテーブルの品名が空欄なんです。入力フォームにはちゃんと出ているのにどうしてテーブルに反映されないのでしょうか?スーパー初心者で何とかここまでたどり着きました。どうか教えてください、宜しくお願いします。

  • DLookup Excel→Access

    エクセルVBAからアクセスのデータベースへ接続し テーブルの値を取得したいのですが エクセルVBAで mystr = DLookup("[フィールド]", "Tテーブル", "[名前] = '検索文字'") と言うコードでアクセスのデータを取得することはできませすか? テーブル名とフィールド名は指定できたのですが ファイル名の指定はどうすればいいのでしょうか? オフィス2010です。

  • dlookup関数が使えない

    ただいま、フォーム上のあるテキストボックスのコントロールソースに以下のような式を入れています。 「=DLookUp("[M00マスター]![個人名]","[M00マスター]","[M00マスター]![個人ID]=[K00オーナーテーブル]![個人ID]")」 このフォームは、K00オーナーテーブルがコントロールソースとなっています。 しかし、このテキストボックスには、エラーと出て、しかも、ずっと点滅し続けています。 この原因がお分かりになるかた、いませんでしょうか。 よろしくお願いします。

  • Access DLookUp関数について

    DLookup関数を使用して、フォーム上にテーブルの値を返したいと思い、 試行錯誤をしたのですが、思うように値が返されません。。。 どうかお力添え下さいますようお願い致します。 「得意先&出荷先」テーブルに「得意先コード」「名称」項目を設け、 「詳細入力」フォームの「得意先コード」に値を入力をすると、 「得意先名称」項目に、テーブルの「名称」項目の値を返す動作を設定したいのです。 私は、下記のように書きましたが、「#Type!」と表示され、思うような動作をしません。 =DLookUp("[名称]","[得意先&出荷先]","[得意先コード] = '" & [Forms]![不具合詳細入力フォーム]![得意先名称] & "'") どこがおかしいのでしょうか?? またDLookUp以外でも、もし上記のような動作を実現させる方法がありましたら、ぜひご教授ください! 宜しくお願いいたします。

  • Access2000 DLookup関数の使い方

    色々試してみたのですがわからないので質問させていただきます。 フォーム/サブフォームを作っています。 サブフォームにある商品コード(コンボボックス)を入力すると、同じサブフォームにある単位、単価に商品台帳テーブルの値(単位、単価)を持ってくるようにしたつもりなのですが・・・。 商品コードの更新処理後に以下のコードを記述したのですが、うまく動きません(エラーは出ない)。 Me![単価] = DLookup("[単価]","商品台帳","[商品コード] = [Forms]![フォーム]![サブフォーム]![商品コード]") どこが悪いか教えていただけないでしょうか?

専門家に質問してみよう