Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


89 / 2272 ツリー ←次へ | 前へ→

【13052】Dlookupの書き方について morimu 16/7/18(月) 19:40 質問[未読]
【13053】Re:Dlookupの書き方について 亀マスター 16/7/19(火) 19:39 回答[未読]
【13054】Re:Dlookupの書き方について morimu 16/7/23(土) 16:52 お礼[未読]

【13052】Dlookupの書き方について
質問  morimu  - 16/7/18(月) 19:40 -

引用なし
パスワード
   テーブル A

A1 A2 A3 A4
X11 X12 X13 X14
X21 X22 X23 X24
X31 X32 X33 X34


テーブル B
B1 B2 B3 
X11 Y12 Z13
X21 Y22 Z23
X31 Y32 Z33

テーブル A とテーブル B 2種類あります。
テーブル Aは4カラムですべて文字列
テーブル Bは3カラムですべて文字列

があります

新しいクエリを作り、Dlookupからテーブル A のA4の値を
取りたいです。


B1 B2 B3  B4
X11 Y12 Z13 X14
X21 Y22 Z23 X24
X31 Y32 Z33 X34
を作成したいです。

新しいクエリに
B1, B2, B3, B4:Dlookup("A4","A","[A1]=[B1]")
と書いたのですが、
Dlookupのcriteria の条件の構文がうまくかけず、
エラーになります。
正しい Dlookupの書き方をご教示いただけないでしょうか
(エクセルのvlookupだと容易なのですが、accessはうまく書けません。)


B4:Dlookup("A4","A","[A1]='X11'")
と書くと、'X14' しか取れません。B1のフィールド値を条件に組み込みたいです

宜しくお願い申し上げます

【13053】Re:Dlookupの書き方について
回答  亀マスター  - 16/7/19(火) 19:39 -

引用なし
パスワード
   ▼morimu さん:

>B1, B2, B3, B4:Dlookup("A4","A","[A1]=[B1]")

通常、このような作業をする時はDLookupを使うのではなく、クエリの機能を使うものです。クエリのデザインビューでテーブルAのフィールドA1をドラッグアンドドロップでテーブルBのB1に移動させるように操作します。

どうしてもDLookupを使いたいのなら、おっしゃるとおり書き方に問題があるので、修正が必要です。
"[A1]=[B1]"
では、テーブルAの中でA1フィールドとB1フィールドが同じ値のものを抽出することになりますが、テーブルAの中にB1フィールドが存在しないのでエラーになるのです。もしあったとしても、条件を満たす何らかの値が1種類だけ表示されることになり、目的は達成できませんが。
正しくは、
"[A1]=" & [B1]
としてやることです。ここでの[B1]はテーブルBにおけるB1フィールドのそれぞれの値を示しているので、テーブルB1のそれぞれの行に対して[B1]の値を取得して、それとテーブルAのA1フィールドの値が一致するものをDLookupで得ることが出来ます。

細かい使い方を知りたいなら、Accessの入門サイトなどでSQLのWHERE句の使い方を勉強してみてください。DLookupの第3引数は、WHERE句そのものなので。

【13054】Re:Dlookupの書き方について
お礼  morimu  - 16/7/23(土) 16:52 -

引用なし
パスワード
   亀マスターさん ありがとうございます。
基本的な LEFT, RIGHT, INNER JOINは理解しています。

DLOOKUPで 表現するためにどのようにしたらいいかを質問しました

"'" と & を使って、Dlookupで記載できることがわかりました。

今回の問い合わせクローズします

89 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078186
(SS)C-BOARD v3.8 is Free