
No.4ベストアンサー
- 回答日時:
【要旨】
提示された式のうち、
a)左側の「[テーブル]![フィールド]」は、DLookupの第2引数で
指定したテーブル(またはクエリ)のフィールドを、
b)右側の「テーブル!フィールド」は、DLookup関数を記述した
クエリ内で使用しているテーブルのフィールドを、
それぞれ意味します。
(この違いは、「2つで一組の『"』(ダブルクォーテーション)による括り」
の中か外かによって生じます。
【詳細】
> 「" [テーブル]![フィールド] =" & テーブル!フィールド & "」
恐らく、クエリの中で使用されていた式を、この質問のために
テーブル名やフィールド名を変えて提示されたのだと思いますが、
一部に写し間違いがあると思われます。
(「"」は通常は2つ一組で、上記の式だとエラーになるはず、と)
式の内容からすると、DLookupは「クエリ(のデザインビュー)」で
使用されているものと推測されますので、以下、その前提で
説明します。
なお、「[ ]」(角括弧)での括りは、テーブル名等にSpaceやカンマ等の
特別な意味を持つ文字が含まれる場合のエラー回避のためで、
実質的な意味は同じですので、以下では「角括弧あり」で統一します。
<正しいと思われる式>
"[テーブル]![フィールド]='" & [テーブル]![フィールド] & "'"
<元の式との違い>
・「=」の直後に「'」(シングルクォーテーション)を追加
・末尾の「"」の後に、「'」と「"」を追加
<式の意味>
クエリのデザインビューの『フィールド』欄に以下のような式を指定して
みます:
a)「"[テーブル]![フィールド] & 1"」と、「"」で全体を括る
b)「[テーブル]![フィールド] & 1」と、「"」で括らない
(末尾の「 & 1」は、Accessによってテーブル名が『テーブル』欄に
自動で移動されてしまうのを防ぐため)
その上で、このクエリをデータシートビューにする(または「!」
(実行)ボタンをクリックする)と、
「a」では「[テーブル]![フィールド] & 1」という文字列
「b」では当該フィールドのデータの末尾に「1」が付いた文字列
が、それぞれ表示されます。
つまり、
「"」で括られている場合は、そのままの文字列として、
「"」で括られていない場合は、フィールド(該当フィールドがない
場合はパラメータ)として、
それぞれ扱われる、ということです。
これにより、クエリの1レコード目の当該フィールドが「トマト」だった場合、
同レコードでの第3引数は「"[テーブル]![フィールド]='トマト'"」となり、
2レコード目が「ナス」なら同様に「"[テーブル]![フィールド]='ナス'"」と
いったように、レコード毎に異なる条件が指定されることになります。
【番外】
提示された式が他の方から受け取ったもので、現状でエラーになって
しまっているためのご質問だった場合は、
"[テーブル]![フィールド]=" & Nz([テーブル]![フィールド])
または
"[テーブル]![フィールド]=" & Nz([テーブル]![フィールド], "''")
(末尾は「'」2つを、前後各1つの「"」で括ったもの)
という式を試してみてください。
<理由>
Accessの初期値「Null」は特殊な値のため、その回避策として
[フィールド] & ""
で「空文字」に置き換えるという手法があります。
ただ、今回の場合は、元の値がNullだと、第3引数は
[テーブル]![フィールド]=
という、右辺のない式となるため、結局エラーになってしまいます。
これを回避するため、Nz関数を使用して
[テーブル]![フィールド]=0
または
[テーブル]![フィールド]=''
に変換した、ということです。
No.3
- 回答日時:
#1です。
いちおう質問の内容に置き換えておきます、[テーブル]にある最初のレコードは、[フィールド]が1であるために
「" [テーブル]![フィールド] =" & テーブル!フィールド & "」
という引数はつぎのように変換され、
"1 = 1"
抽出条件に一致する最初のレコードとして抽出される。
以上です。
No.2
- 回答日時:
『DLOOKUP関数を使用するには(応用編)』
というマイクロソフトのサポートオンラインのページ881378で質問事項の説明あります。
『フォーム上のフィールドによるテキスト抽出条件の指定』の欄です。
"[得意先コード]="'&[得意先コード]&"'"
検索してみて下さい。
No.1
- 回答日時:
以下の、
http://support.microsoft.com/kb/285866/ja
=DLookup("[氏名]", "社員", _
"[社員コード] = Form![社員コード]")
=DLookup("[氏名]", "社員", _
"[社員コード] = " & [社員コード])
=DLookup("[氏名]", "社員", _
"[社員コード] = " & Forms![受注]![社員コード])
上記 3 つの例は、同じ結果を返します。
最初の例では、Form![社員コード] が抽出条件の引用符の中に置かれています。"Form" は、フィールド参照の "社員コード" が現在のフォームのものであることを示します。"Form" を指定しないと、"社員コード" と [社員] テーブルの社員コードそのものとが比較され、[社員] テーブルにある最初のレコードから氏名が返されます (抽出条件を何も指定しなかった場合と同じ結果になります)。なぜなら、[社員] テーブルにある最初のレコードは "社員コード" フィールドが 1 であるため、
"[社員コード] = [社員コード]"
という引数は次のように変換され、
"1 = 1"
抽出条件に一致する最初のレコードとして抽出されるためです。
にすべて書いてあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
DLookupがうまく出来ません
Access(アクセス)
-
2つ目のレコードの値を取得するには?
Access(アクセス)
-
Access DlookUPの複数条件抽出
Access(アクセス)
-
-
4
日付と文字列を条件としてDLookup関数で抽出さ
その他(プログラミング・Web制作)
-
5
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
6
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
7
accessの自動更新処理をできないようにするにはどうすれば良いですか?
その他(データベース)
-
8
アルファベットの入った文字列の抽出の仕方について。
Excel(エクセル)
-
9
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
10
Access 複数のクエリの結果をひとつの表にまとめたいのですが
Access(アクセス)
-
11
複数条件のDLOOKUP文が上手く使用できない
その他(Microsoft Office)
-
12
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
13
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
14
Access DLookup vbaで条件を2件設定したい場合どうすればよいでですか? 現在 If(
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで追加した項目に全て...
-
Accessを開きなおすとテキスト...
-
アクセスのクエリ 1文字以上を...
-
アクセスのマッチングで空白が...
-
アクセス クエリのフィールド...
-
テキストボックスにクエリ結果...
-
Accessのテーブルのフィールド...
-
AccessのテーブルにVBAでフィー...
-
Access2007のテーブルにハイパ...
-
AccessのDLookUpの第3引数の値...
-
フィールド名の変更について(...
-
追加クエリで特定フィールドの...
-
Accessのクエリでハイパーリン...
-
Accessで、1つの項目に複数の...
-
日付型のフィールドに空白を入...
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessの桁区切りについ...
-
アクセスのエラー「クエリには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
アクセスで追加した項目に全て...
-
Accessのテーブルのフィールド...
-
テキストボックスにクエリ結果...
-
Accessを開きなおすとテキスト...
-
テーブルでメモ型になっている...
-
アクセスのクエリ 1文字以上を...
-
Accessで、テーブルに入力した...
-
アクセス クエリのフィールド...
-
Access:値が求めたい値の2倍...
-
access フォームを開くと「パ...
-
Access で 特定の文字の個数を...
-
追加クエリで特定フィールドの...
-
ACCESSで2つフィールドの日付...
-
accessvba 複数条件でFilterを...
-
Access 選択クエリで「テーブ...
-
アクセスのクエリに「PHONETIC...
-
「[Microsoft][ODBC SQL Server...
-
途中で改行されたCSVをAccessに...
-
Accessの電話番号フィールド
おすすめ情報