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で質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) Access DLookup vbaで条件を2件設定したい場合どうすればよいでですか? 現在 If( 1 2023/06/28 14:28
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
DLookupがうまく出来ません
Access(アクセス)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
日付と文字列を条件としてDLookup関数で抽出さ
その他(プログラミング・Web制作)
-
-
4
Access DlookUPの複数条件抽出
Access(アクセス)
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
2つ目のレコードの値を取得するには?
Access(アクセス)
-
7
ACCESS テキストボックスを隙間なくきれいに並べたい
Access(アクセス)
-
8
access マクロでのフィルタの解除の方法
Access(アクセス)
-
9
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
10
Access レポートを開く時、2つの条件で昇順で並び替え
Access(アクセス)
-
11
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
12
Null値件数をカウントする式について
その他(データベース)
-
13
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
14
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
15
ACCESS フォームをそのまま印刷について
その他(データベース)
-
16
Access サブフォームでの選択行の取得
その他(データベース)
-
17
ACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい
Access(アクセス)
-
18
ACCESS リストボックスの字の色を変えたい
その他(データベース)
-
19
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
20
複数条件のDLOOKUP文が上手く使用できない
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
Accessのテーブルのフィールド...
-
アクセスで追加した項目に全て...
-
テキストボックスにクエリ結果...
-
Access で 特定の文字の個数を...
-
Accessを開きなおすとテキスト...
-
Accessで、テーブルに入力した...
-
Access:値が求めたい値の2倍...
-
access フォームを開くと「パ...
-
更新クエリをリンクデータベー...
-
クエリの一つのフィールドのIIF...
-
アクセスのクエリ 1文字以上を...
-
Access2010での、レポートの両...
-
テーブルでメモ型になっている...
-
Accessのクエリでハイパーリン...
-
アクセス クエリのフィールド...
-
ACCESSのテーブル複数行...
-
途中で改行されたCSVをAccessに...
-
Access2002の重複クエリで大文...
-
ACCESSで2つフィールドの日付...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
アクセスで追加した項目に全て...
-
Accessのテーブルのフィールド...
-
テキストボックスにクエリ結果...
-
Accessを開きなおすとテキスト...
-
テーブルでメモ型になっている...
-
Access:値が求めたい値の2倍...
-
Accessで、テーブルに入力した...
-
Access で 特定の文字の個数を...
-
Accessのクエリでハイパーリン...
-
ACCESSで2つフィールドの日付...
-
アクセスのクエリ 1文字以上を...
-
追加クエリで特定フィールドの...
-
accessでの文字列の混ざった連...
-
途中で改行されたCSVをAccessに...
-
更新クエリをリンクデータベー...
-
Access2002の重複クエリで大文...
-
Accessの電話番号フィールド
-
accessvba 複数条件でFilterを...
-
access フォームを開くと「パ...
おすすめ情報