クエリでの式(参照先のテーブルの2列目を表示)

このQ&Aのポイント
  • クエリで参照するテーブルには、ID、名前、グループNo1、グループNo2の情報があります。
  • テーブル2には、グループNoとグループ名の対応関係があります。
  • 式を使って、グループNo1とグループNo2の両方が入力されている場合は、グループ名を表示したいです。
回答を見る
  • ベストアンサー

クエリでの式(参照先のテーブルの2列目を表示)

テーブル1 ID、名前、グループNo1、グループNo2(テーブル2のデータを元にコンボボックス。2列目(=グループ名)が表示されるように設定) テーブル2 グループNo、グループ名 というようなテーブルがあります。 クエリを作成しました。 その中に IIf(IsNull([グループNo1]),"",IIf(IsNull([グループNo2]),[グループNo1],[グループNo1] & "," & [グループNo2])) という式を入力しました。 グループNo1にしか入力がない場合は、テーブル2のグループNoではなく、グループ名が表示されているのですが、 グループNo1と2両方に入力があった場合、数字であるグループNoの方が表示されてしまいます。 どちらもグループ名を表示したいのですが、どこを修正すればいいのでしょうか?

  • w-inty
  • お礼率72% (1169/1618)

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

IIf(IsNull([グループNo1]),   "",   IIf(IsNull([グループNo2]),     DLookup("[グループ名]","[テーブル2]","[グループNo]=" & [グループNo1]),     DLookup("[グループ名]","[テーブル2]","[グループNo]=" & [グループNo1]) & ","     & DLookup("[グループ名]","[テーブル2]","[グループNo]=" & [グループNo2])     )   ) ではどうでしょうか?

w-inty
質問者

お礼

回答ありがとうございます。 無事できました!!

関連するQ&A

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

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

  • クエリの条件式に複数のコンボBoxの値を参照させるには?

    コンボボックスで選択された値を元に選択を行わせるクエリを作成しています。 ですがある特定のコンボボックスからの値でなく、複数のコンボボックスの値を組み合わせて選択を行うのはどの様にしたら良いのでしょうか? テーブル名:テーブル1 クエリ名:選択クエリ1 選択の元になるフィールドはテーブル1内の[時刻]フィールドです。 ここは日付/時刻型になっており、表示形式は[YYYY/MM/DD HH:MM:SS]です。 この部分である範囲の選択を行いたいのですが、それの元となるコンボボックスを年/月/日/時/分/(秒)に分けたいと考えています。 (秒は無くても良い) 通常コンボボックスの値を参照する際は Like [Forms]![フォーム名]![コンボボックス名] という条件式を使いますが、複数のコンボボックスの値を組み合わせる場合はどのように記述したら良いのでしょうか? またクエリのデザインビューで出来ない場合はモジュールでの記述方法をご教授頂けるとありがたいです。 よろしくお願いいたします。

  • ACCESS クエリで表示されているデータがテーブルで反映されない

    宜しくお願い致します。 ACCESSにおいてクエリで表示されているデータがテーブルで反映されないので困っています。 状況としてはあるフィールドに1が入力されるとその隣のフィールドにAが入力されて2が入力されるとBが入力され3,4,5・・・と続いていく感じでそれは“iif”を使って条件指定しています。 この場合クエリのデザインビューで見たときにテーブル名を指定することができないためにこのような状況になっているということはわかったのですが、テーブルにその条件で表示した物が反映されるためどのように記述をしたらいいのでしょうか・・・ ややこしい質問かもしれませんが、宜しくお願い致します。

  • テーブル内容の抽出のクエリーについて

    いろいろ調べてみたのですが、わからなかったので質問させていただきます 今、個人情報の入力フォームを作っていまして、個人の管理コードの抽出、及び参照をコンボボックスにて作りたいと思っております 今回作りたいのは、一つのコンボボックスにて社員・アルバイトの二つのレコードを参照したいのですがどうやってよいのかわかりません 今現在あるテーブルは社員テーブルとアルバイトテーブルの二つです この二つのテーブルを元にして以下のようなクエリーは作成出来るでしょうか?(クエリーはクエリービルダにて作成予定) 例: 個人コード 名前 10000 ああああああ この三件は社員 10001 いいいいいい 10002 うううううう 20000 ええええええ この三件はアルバイト 20001 おおおおおお 20002 かかかかかか 上記のような内容でコンボボックスで表示させたいのです 宜しくお願いします

  • Access フォームコンボボックス空白をクエリで抽出したい

    現在access2000を使って、 フォーム1内にコンボボックスを作って コンボボックス内に1,2,3 と項目を入れています。 一方、クエリを使って、上記フォーム内のコンボボックスをつなげて1,2,3をそれぞれ抽出することはできるのですが、 1から3まで全てをiif関数などで 抽出したいと考えてします。 僕が考えた関数は iif(isnull([フォーム1][コンボ1]),is not null ,[フォーム1][コンボ1]) とクエリ抽出条件内に入力すると、結果は、 1、2、3をそれぞれフォームコンボボックスで選択すれば、クエリに反映されるのですが、コンボボックス内を「空白」の状態にすると、1,2,3すべてがクエリで抽出されるのではなく、何も抽出されないという結果になってしまいます。 どうすれば、クエリで1から3すべてを抽出することができるのでしょうか?多分、iif関数内の「空白」は空白として処理されないような気がします。 よろしくお願いします。

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

  • ACCESS クエリ テキスト入力後データ表示

    ACCESS クエリ テキスト入力後データを表示させたい 基本的な事ですが教えてください。 Access2010でクエリを作成しています。 データはexcelからリンクしています。 Excelデータは、A~F列、1~300行(1行目は項目行)あるとします。 データのリンクは問題なしでした。 A列には4~7桁の数字が入っており、重複はありません。 作成しているクエリは、A列にある番号をテキストボックスで手入力し、それと一致した行のデータB~F列を表示させる、というものです。 今までデータが少なかったのでA列をリストボックス、もしくはコンボボックスにしてB~F列を表示させていました。この方法はわかります。 しかし今回300行と多いのでテキストボックスに手入力し、一致した行のデータB~F列を表示させることが初めてで設定方法がわかりません。本もリストボックス、もしくはコンボボックスからの検索ばかりで載っていません。 初期的な質問かと思いますが、どうかできるだけ簡単な言葉で教えてくださいませんでしょうか? 宜しくお願い致します。

  • ACCESSのクエリー抽出条件にIIFを使用して

    コンボボックスの値を抽出条件にしたクエリーを作成しています。 コンボボックスにて"ALL"を選択したときに、全レコードを表示したく、 以下の式を入れたのですが全表示がされません。 IIf([Forms]![テーブル名]![コンボ値]="ALL",Like "*",[Forms]![テーブル名]![コンボ値]) Like "*" の部分がいけないのでしょうか? (偽の場合は選択した値のレコードが抽出されます) どなたか教えてください、よろしくお願いいたします。

  • Accessで任意のテーブルをひとつ表示させたいのですが…

    行いたい事は、年と月ごとに作成されている「テーブル」を表示させたいという事です。任意のテーブルをひとつ表示させることができればよいのです。 コンボボックスを作成することにし、任意のテーブルをひとつ選択・表示させることを考えました。「値集合ソース」を「テーブル/クエリ」に設定し、「値集合タイプ」を先述のテーブルの任意のテーブルのひとつを設定し、マクロビルダの「アクション」に「テーブルを開く」とし、テーブル名入力欄に「値集合タイプ」で設定したテーブル名を設定しました。確かにこのテーブルは表示されますが、 (1)コンボボックスの、選択を促す下矢印を押下すると表示させたいフィールドがテーブルの左から2番目にあるのですが、このフィールドではなく最初のフィールド(オートナンバー)が表示されてしまう。 (2)コンボボックス内は空欄であって欲しいのに、選択したオートナンバーが黒の反転点滅表示してしまう。 (3)一番行いたい、任意の年と月で作成されたテーブルを選択させる表示ができない。 と、以上が現状です。 良きアドバイスをお待ちしております。 宜しくお願い申し上げます。

  • 2つのテーブルからクエリー作成

    まず現状のご説明をさせていただきます。 「一覧テーブル」と「支払先一覧テーブル」があります。 「支払先一覧テーブル」には、 ・No ・支払先名 ・カナ ・銀行名 ・支店 というフィールドがあります。 「一覧テーブル」には ・日付_年 ・日付_月 ・支払先No ・支払先 ・入居者 ・家賃 ・駐車料 ・総支払額 というフィールドがあります。 この2つのテーブルは、「支払先テーブル」の「No」と「一覧テーブル」の「支払先No」が リレーションされています。 この2つのテーブルからクエリーをつくり、各支払先ごとに合計を取りたいと思い、以下のようなクエリーを作成しました。 デザインビューでクエリーを作成し、「支払先テーブル」と「一覧テーブル」をそれぞれ選択。 その中から、 ・日付_年(一覧テーブル) ・日付_月(一覧テーブル) ・カナ(支払先一覧テーブル) ・銀行名(支払先一覧テーブル) ・支店(支払先一覧テーブル) ・総支払額(一覧テーブル) をもってきました。 そのクエリを集計し、総支払額だけ「合計」にし、あとは「グループ化」にしました。 これで、支払先ごとの合計は出るかと思ったのですが、空欄になってしまいました。 どこが間違っているのか全然わかりません。 どうか教えてください。 よろしくお願いします。 Access2000を使用しています。

専門家に質問してみよう