• ベストアンサー

Access DLookup関数で複数条件の記述

とても困っているので、どなたか教えて下さい! 今AccessでDLookup関数を使ってフィールドの値を取り出そうとしているのですが、 色んなエラーメッセージが出て先に進めません。 ★値を取り出そうとしているテーブル★ ■顧客台帳  ・顧客ID(オートナンバ)  ・顧客氏名(テキスト型)  ・生年月日(日付・時刻型)      以下略 ここから DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = " & Chr(34) & Me.Txt顧客氏名 & Chr(34) And "生年月日 = " & Me.Txt生年月日) 補足:Me.Txt顧客氏名(書式なし)    Me.Txt生年月日(日付(S)定型入力9999/99/99)    は、事前に入力されているものとします。 という式を使って、入力した顧客氏名と生年月日に一致する顧客IDを取り出したいのですが、 「型が違います」というエラーが出てしまいます。 条件式に[ ]等をつけてみても、「指定した式で参照されている'|'フィールドが見つかりません」 という様なエラーが出てしまいます。 条件の部分が間違っていると思うのですが、この式、またはやり方の問題点がお分かりになる方がおられましたら、ご指摘の方よろしくお願いいたします。

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

  • ベストアンサー
  • TM31
  • ベストアンサー率38% (8/21)
回答No.4

DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = '" & Me.Txt顧客氏名 & "' And 生年月日 = #" & Me.Txt生年月日 & "#") だと思います。 あと、顧客台帳のテーブル名は"01顧客管理台帳"になっていますか?

JusoHohei
質問者

お礼

お忙しい中、ご回答ありがとうございました。 提示して頂いたコードをコピペいたしまして、 見事顧客目当ての顧客IDを取得することが出来ました!! 本っ当~に助かりました、感謝です! どうもありがとうございました★

その他の回答 (3)

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.3

度々すみません。 DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = " & Me.Txt顧客氏名 & " And 生年月日 = #" & Me.Txt生年月日 & "#")

JusoHohei
質問者

お礼

お早いご回答ありがとうございました!! 訂正も入れて頂いて、親切なご回答参考にさせて頂きました。 残念ながら、「顧客氏名=」の後の「'」が抜けていたため、ポイントは次点割り振りとさせて頂きました。しかし、それだけ急いでご回答頂いたのだと感謝いたしております。 そして、何も分からなかった時に、ご丁寧な助言頂けた事を大変嬉しく思っております!本当にありがとうございました☆

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.2

#1です。 すみません。少し間違えました。 DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = " & Me.Txt顧客氏名 " And 生年月日 = #" & Me.Txt生年月日 & "#")

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.1

DLookup("顧客ID", "01顧客管理台帳", "顧客氏名 = " & Me.Txt顧客氏名 " And 生年月日 = #" & Me.Txt生年月日) & "#" 上記の記述ではどうですか。

関連するQ&A

  • accessのDLookup関数について

    ほとんど理解できていないAccess2000使用者です 数値型のDLookup関数では以下のようにしたら上手くいきいました Me![氏名] = DLookup("[氏名]", "[テーブル]", "[ID]= " & [ID]) 出来上がってから、[ID]をテキスト型にしなければいけなくなりました 後ろの"[ID]= " & [ID]の部分をどのように変えればいいか分からず・・ よろしくお願いします

  • AccessのDlookup関数のエラー

    【Access2003】 dlookup関数について教えてください。 やろうとしていることは、ある商品について任意の日付の時点での数量を表示したく、 練習として、 DLookup("[数量]", "t_商品情報", "[品番] = '"& "1001" & "' and [日付] = #" & "2007/12/17" & "#") と記述したときには正常な値が表示されました。 その後、「品番」と「日付」をフォーム上のテキストボックスで任意の値を入力したいと思い、下記のように書き直しました。 DLookup("[数量]", "t_商品情報", "[品番] = '"& "[Forms]![フォーム1]![txt品番]" & "' and [日付] = #" & "[Forms]![フォーム1]![txt日付]" & "#") フォームのテキストボックスにそれぞれ値を入力したところ、「日付の構文エラー」となってしまいました。 勉強不足なのでしょうか、原因がわからず困っております。 お詳しい方のアドバイスをお待ちしております。宜しくお願い致します。

  • DLookUp関数を使ったACCESSの令和表示

    [やりたい事と背景] ACCESS2007で和暦を令和表示させたい。 現在、新元号の対処方法「ACCESS2007の為」としてテキストボックスのプロパティー(書式)に「”令和○年”」と記載し、データタブのレコードソースに「=Date()」としてしています。年に一回とは言え自動で対処できないものかと考えて居りました。昨日ですがWEBにて対処方法が記載されたサイト「ページ」を見つけました。早速、試してみましたところ「指定した式に不適切な日付の値が含まれています。」とのアラートが出て設定完了に至りませんでした。私には問題が「式」なのか「式」ならどこに問題があるのかすら分かりません。アドバイスをお願いできますでしょうか。 [令和対応紹介 ウェブサイト] 新元号は「令和」|マイクロソフトのパッチに頼らずにAccessで新元号を表示する方法 https://www.ait-labo.com/excel_access/2805/ [ウェブでの紹介と対応方法] 1,テーブル内のフィールドは次の3つとシンプルです。「IDは必要ないのでしょうか?(私はID無しで作りました)」 ・開始年月日(日付/時刻型) ・終了年月日(日付/時刻型) ・和暦(短いテキスト) 自身の対応:西暦・和暦対応マスタを作る。名前:履歴マスタ「私は T_履歴マスタとしました。(修正時に探しやすい為)」 2,和暦への変換はDLookupで取得 フォームには、日付を表示するテキストボックス(txt日付)と和暦日付を表示させるテキストボックス(txt和暦日付)を用意します。 「和暦日付付用のフィールドのコントロールソースには次のような設定を行います(コピペして終了させ様とするとエラーアラートがでる)」 =DLookUp(“和暦”,”和暦マスタ(T_履歴マスタに変更)”,”開始年月日 <= #” & txt日付 & “# and 終了年月日 >= #” & txt日付 & “#”) & Format(txt日付,”mm\年dd\日”) 以上ですが、宜しくお願いします。

  • 日付と文字列を条件としてDLookup関数で抽出さ

    日付と文字列を条件としてDLookup関数で抽出させたいです。アクセスです。 テーブル1のデザイン フィールド名 ID(数値型) フィールド1(テキスト型) 取得日時(日付/時刻型) テーブル1のデータ ID  フィールド1  取得日時 1       あ  2013/01/05 2       い  2013/01/05 この条件でvbaでIDの値を抽出したいのですが MsgBox DLookup("[ID]", "テーブル1", "[取得日時] = #2013/01/05#") だと、1が返ってきちゃうのでフィールド1でもフィルタをかけたいのですが どうやればいいでしょうか? MsgBox DLookup("[ID]", "テーブル1", "[取得日時] = #2013/01/05#" And "[フィールド1] = 'あ'") にすると、型が一致しません。(Error 13)になります。 ご教授よろしくお願いします。

  • アクセス DLookup関数 なぜエラーになるのか

    アクセス DLookup関数 なぜエラーになるのかわからないです。 testと言うテーブルがあり、a・bと言うフィールドがあります。 aフィールドにあああと入ってる場合のbフィールドの値を取得したいのですが Debug.Print DLookup("[b]", "test", "[a] = あああ") だと、 実行時エラー2471「クエリ パラメータとして指定した式でエラー'[あああ]'が発生しました。」 になります。 どこがおかしいのか教えていただけますか?

  • Access2000 DLookup関数の使い方

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

  • AccessのDLookupについて

    AccessのDLookupについての質問です。 いろいろ調べたのですがわからなかったので教えてください。 テーブル「社員」…ID、社員コード、氏名、所属、回数 フォーム…テーブルと同項目 フォームで社員コードを入力すると、自動的に氏名、所属が表示されるようにしました。 しかし、所属が変更になった社員氏名がうまく表示できません。 ~例~ ID_社員コード_氏名 _所属_回数 1_1234   _山田 _東京_1 2_1234   _山田 _東京_2 3_1234   _山田 _大阪_3 とあったときに、表示したいのはID_3のデータなのですが、ID_1のデータが表示になってしまうのです。(回数が最大の氏名、所属を表示したい) x = Nz(DMax("回数", "社員", "社員コード=" & [社員コード]), 0) Me!氏名 = DLookup("氏名", "社員", "社員コード=" & [社員コード]) _ & " and 回数=" & x) としています。エラーは出ません。 どこが変なのでしょう? よろしくおねがいします。

  • アクセス DLookUpについて

    職員番号入力後、自動で部署コードを入力できるようにしたいのですが、このアクセスのフォームで、正常に動くフォームと動かないフォームがあり困っております。どこが悪いか御教示お願いできませんでしょうか。 -------------------------------------------------------- 使用テーブル T_職員名簿 : ID、氏名漢字、氏名カナ、部署コード、部署名 イベントプロシ―ジャ内容 Private Sub 職員番号_AfterUpdate() Me.[部署コード] = DLookup("部署コード", "T_職員名簿", "職員番号= " & Me![職員番号] & "") End Sub エラー内容 イベントプロパティに指定した式更新後処理でエラーが発生しました。 --------------------------------------------------------

  • 複数条件のDLOOKUP文が上手く使用できない

    現在、ACCESSVBAを用いての作業を行っているのですが、 判定条件として複数条件をDLOOKUP文を使用すると実行時にエラーとなるなどして、 上手く動作しません。 おかしな点がありましたら指摘していただけますでしょうか。 対象テーブルのフィールドAAA~は全てテキスト型となっております。 Me!txtはフォーム上から取得した値、 aaaaはそこまでの処理に使用した変数、 rsはレコードセットとなっております。 レコードセットはExcelのセルを読み取ったデータが格納されており、 これらの変数はそのまえの処理で正常に取得を確認しています。 If DLookup("AAA", "TBL", _"BBB ='" & Me!txt & "'" And _"CCC = '" & aaaa & "'" And _"CCC = '" & Left(rs(1), 3) & "'") = Null Then よろしくお願いいたします。

  • access Dlookup関数について

    いつもこちらではお世話になっています。 型が一致しません。エラー13 といったエラーが出ています。スペースを消したり、入力しなおしたりいろいろやってみたのですが、 このようなエラーがずっと出ています。「"」「#」「&」の位置などが問題なのでしょうか? Me.前回検針値 = DLookup("検針値", "T_水道検針", "部屋CD =" & Me!部屋CD & "" _ And "検針日 =#" & Me!前回検針日 & "#") ヘルプを見てもいろいろ調べても、わからないのでよろしくお願いします