Access検索用フォームの完全一致検索

このQ&Aのポイント
  • Access初心者のために、テーブルAを元にフォームAを作成し、検索用フォームBを作成しています。
  • フォームBでは氏名、住所、金額、契約締結日、業種分類など20個の項目を検索するための非連結のテキストボックスを配置しています。
  • 契約締結日や業種分類の検索に問題があり、指定した日付以前のレコードや特定の業種分類を抽出することができません。
回答を見る
  • ベストアンサー

アクセス検索用フォームでの完全一致検索

いつも大変お世話になっております。ACCESS初心者ですが,宜しくお願いします。 テーブルAを元にクエリAを作成し,クエリAをレコードソースとしてフォームAを作成しています。フォームAのレコードを検索するのに検索用フォームBを作成しました。検索用フォームBは,フォームAと全く同じデザインで,レコードソースのみ空にしてあります。項目は,氏名,住所,金額,契約締結日,業種分類等20個ほどあり,それぞれ検索するために20個分の非連結のテキストボックスを配置しています。また,検索条件を表示させるためのコマンドボタンを一つ配置しています。コマンドボタンには,以下のVBAを記述しています。 Private Sub 検索実行_Click() On Error GoTo エラー処理 Dim StrWhr As String 'Where条件式 Dim StrMsg As String '表示メッセージ Dim StrSrc As String 'レコードソース Dim stDocName As String '表示用フォームの名前 If Nz(Me!氏名, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "氏名 Like '*" & Me!氏名 & "*'" End If If Nz(Me!住所, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "所在地 Like '*" & Me!所在地 & "*'" End If    If Nz(Me!金額, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "金額 = " & Me!金額   End If If Nz(Me!契約締結日, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "契約締結日 Like '*" & Me!契約締結日 & "*'" End If If Nz(Me!業種分類, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "業種分類 = " & Me!業種分類 End If If StrWhr = "" Then StrSrc = "Select * From [qry_○○] Order By ○○;" Else StrSrc = "Select * From [qry_○○] Where " & StrWhr & " Order By ○○;" End If If MsgBox(StrMsg, vbOKCancel, "確認") = vbOK Then DoCmd.OpenForm "frm_○○", , , StrWhr Forms("frm_○○").RecordSource = StrSrc End If 終了処理: Exit Sub エラー処理: MsgBox Err & Error$, , Me.Name & " 検索実行" Resume 終了処理 End Sub このうち,氏名,住所,金額に関しては,問題なく検索できますが,契約締結日及び業種分類について検索することができません。 (1)契約締結日に関しては,契約締結日その日のみではなく,指定した契約締結日以前のレコード全てや,期間を指定してレコードを抽出したいのですが,可能でしょうか。 例えば,契約締結日のテキストボックスに >2008.8.1と入力した場合に,2008.8.1以前に契約を締結した全部のレコードを抽出したり, 2008と入力した場合に,2008(年)に契約締結した全レコードを抽出できることが希望です。 (2)業種分類については,コンボボックスからデータを選択して検索するようになっていますが,検索実行をクリックすると,パラメーターの入力画面が表示され,適当な値を入力しても正しい抽出結果が表示されません。 おそらく,以前に教えていただいた StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "○○ = " & Me!○○ の構文が数値型の完全一致検索の構文のためだと思われます。テキスト型の完全一致検索の構文を教えて下さい。 拙い質問で恐縮ですが,補足等いたしますので,宜しくお願いいたします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

> 「業種分類」でも「種別」でもなく,「業種選択」という > コントロール名だったので, これは、まぁ、置いといて・・・ >StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ >& "業種分類 = '" & Me!業種分類 & "'" 問題は・・・「"業種分類 = '"」のところ、こちらは、コントロール名ではなく > DoCmd.OpenForm "frm_○○", , , StrWhr に使われるレコードソースのフィールド名ですので・・・今のところ、触れてるのは、数が少ないのよ おそらく、フィールド名が一致しないので、パラメータとして、聞いてきてるんだと思うのですが、比較して無いので、全くパラメータを入力しても、反映して無いと言うことです

0304arabia
質問者

お礼

ご連絡が遅くなり,すみません。休み明けの頭は,少しはすっきりしたようで,質問の件が両方とも解決しました。 (1)の方は,文字列にするという前提で, If Nz(Me!契約締結日, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "Format(契約締結日,'yyyy/mm/dd') Like '*" & Me!契約締結日 & "*'" End If としたところ,レコードの抽出が可能となりました。 (2)の方は, >問題は・・・「"業種分類 = '"」のところ、こちらは、コントロール名ではなく > DoCmd.OpenForm "frm_○○", , , StrWhr >に使われるレコードソースのフィールド名ですので・・・今のところ、触れてるのは、数が少ないのよ のアドバイスにより解決しました。 本当に,色々アドバイスをいただき,ありがとうございました。これからも,アクセスを使用して行く予定ですので,また,よろしくお願いいたします。

その他の回答 (3)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

> パラメーターの入力というダイアログが表示されてしまいました。 パラメーターの入力ダイアログのタイトルバーに、何って表示されてました? #1での補足の通り・・・ > SELECT [tbl_業種別分類マスタ].種別 > FROM tbl_業種別分類マスタ > GROUP BY [tbl_業種別分類マスタ].種別 > ORDER BY First([tbl_業種別分類マスタ].[NO]); 「業種分類」じゃ、なくて、「種別」と言うフィールドになってるとか?

0304arabia
質問者

補足

>パラメーターの入力ダイアログのタイトルバーに、何って表示されてました? 業種選択と表示されました。 >「業種分類」じゃ、なくて、「種別」と言うフィールドになってるとか? 「業種分類」でも「種別」でもなく,「業種選択」というコントロール名だったので, If Nz(Me!業種選択, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "業種選択 = " & Me!業種選択 に直してみましたが,やっぱりパラメーターの入力を求めるダイアログが出てきてしまいます。表示させる側のレコードに空白があるのがいけないのでしょうか。 明日からお盆休みなので,続きは来週また投稿します

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

> 逆に,日付時刻型を文字にしてしまうメリット・デメリットは何ですか? う~ん、例えば、文章が楽!と言うだけ・・・ 日付時刻型だと・・・ [契約締結日] Between #2008/07/01# And #2008/07/31# と、いう形を作ることになりますが・・・ テキスト型に変換した場合 Format([契約締結日],'yyyy/mm/dd') Like '2008*' で、抽出可能になるという話ね 但し、変な話、前月16日から、翌月15日等、日付を変動させると、条件文が複雑怪奇になってくると言う話ね ですので・・・ > StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ > & #契約締結日# & Me!#契約締結日# の部分とすれば、 Dim usFrom, usTo as Date usFrom = Me!契約締結日 ' ここの部分で月単位、年単位など、考慮 usTo = Me!契約締結日 + 30 ' ここの部分で月単位、年単位など、考慮 StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "Between #" _ & Format(usFrom,"yyyy/mm/dd") & "# And #" _ & Format(usTo,"yyyy/mm/dd") & "#" ) と、言う話、要は・・・日付をどう操作するかの話 文字列の話なら、上記の通り StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ & "Format(Me!契約締結日,'yyyy/mm/dd') Like '" & Me!契約締結日 & "*'" と、言うこと・・・日付の方は考慮する必要があるかもね 入力方法、条件方法、抽出範囲などね (Format関数を介してるのは、mm/dd/yyで、変換されて比較は、yy/mm/ddで比較されるのを避けるため、内部変換は、英語をベースとしてるので、mm/dd/yyと変換することが多いのよ、SQL自体は、Windowsの地域設定に依存するけどね) 2の方は、もっと、簡単な話 > StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ > & "業種分類 = " & Me!業種分類 StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ & "業種分類 = '" & Me!業種分類 & "'" と、「'」が抜けてると言う話

0304arabia
質問者

補足

(2)の方の完全一致検索の方ですが, >StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") _ >& "業種分類 = '" & Me!業種分類 & "'" と入力したら,パラメーターの入力というダイアログが表示されてしまいました。 (1)の方は少し理解が必要なので,よ~~~く読んでから,結果をお知らせしたいと思います。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

いろいろ突っ込みどころが、一杯ですが、質問事項だけ・・・ 1)の場合 時刻日付型の場合、Like 等は使用できません ですので、行うとすれば・・・ 文字にする(Format関数を使用)と言う話か? 「Between A And B」と範囲抽出を行うか? のどちらかになります どちらでも、可能ですので・・・どうするかは、考えましょう 後、日付時刻型の場合、型指定の場合 #2008/08/12# と「#」で囲むのが正解、「'」「"」は、文字列 自動型変換は、ある程度してくれますが、あまり過信してると・・・希望した結果が出ません 2)のは方は・・・ 数値なのでしょうか? テキスト型の完全一致の場合、先ほど、述べたように、「'」もしくは「"」で、囲むと言う話、数値の場合ならば、記載の通りですが、テキストの場合、「'」または「"」で、囲まれてるようには見えませんが・・・ 大体、質問に対しては、以上かな?

0304arabia
質問者

補足

ご回答ありがとうございます。突っ込みどころ一杯なんですね…先が思いやられます。 ご質問に関して,補足します。 (1)の件ですが,正直言って, >文字にする(Format関数を使用)と言う話か? >Between A And B」と範囲抽出を行うか? のどちらでも,正しい抽出結果が得られれば構いません。逆に,日付時刻型を文字にしてしまうメリット・デメリットは何ですか? >後、日付時刻型の場合、型指定の場合 #2008/08/12# と「#」で囲むのが正解 とのことですが, StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & #契約締結日# & Me!#契約締結日# とすることで良いのでしょうか? >2)のは方は・・・ 数値なのでしょうか? すみません,説明不足でした。 コンボボックスに表示されるのは,テキストです。 コンボボックスの値集合ソースは SELECT [tbl_業種別分類マスタ].種別 FROM tbl_業種別分類マスタ GROUP BY [tbl_業種別分類マスタ].種別 ORDER BY First([tbl_業種別分類マスタ].[NO]); 値集合タイプはテーブル/クエリです。 以上,ご質問への回答となっていますでしょうか。宜しくお願いします。

関連するQ&A

  • 検索用フォームで数値型データを抽出する方法

    いつも大変お世話になっております。アクセス初心者ですが宜しくお願いします。 テーブル1を元にクエリ1を作成し,それを元にフォーム表示用を作成しました。フォーム表示用のデータを検索するために非連結のフォーム検索用を作成しました。 検索用フォームでは,氏名,住所,契約締結日等複数の非連結フィールドがあり,入力された値を抽出するために,検索実行というコマンドボタンを一つ配置しています。 検索実行コマンドボタンは,以下のようになっています。 Private Sub 検索実行_Click() On Error GoTo エラー処理 Dim StrWhr As String 'Where条件式 Dim StrMsg As String '表示メッセージ Dim StrSrc As String 'レコードソース Dim stDocName As String '表示用フォームの名前 If Nz(Me!名前, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "名前 Like '*" & Me!名前 & "*'" End If If Nz(Me!契約締結日, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "Format(契約締結日,'yyyy/mm/dd') Like '*" & Me!契約締結日 & "*'" End If If MsgBox(StrMsg, vbOKCancel, "確認") = vbOK Then DoCmd.OpenForm "frm_顧問先CARD", , , StrWhr End If 終了処理: Exit Sub エラー処理: MsgBox Err & Error$, , Me.Name & " 検索実行" Resume 終了処理 End Sub 表示用フォームに契約年数という項目があり,数値型のデータが入力されています。そのデータを検索用フォームで算術演算子を使用して抽出するには,どのようにしたら良いでしょうか。 過去に質問したことと似ているので,色々と参考書を見ながら考えてみたのですが,上手くいきません。 できれば,一つのテキストボックスに >12 とか 4<8 とか入力してデータを抽出したいですが,不可能なら検索用フォームに二つのテキストボックスを配置して,そのテキストボックスで範囲を指定し,範囲内のレコードを抽出するという方法でも構いません。 どなたか,ご教示下さい。宜しくお願いいたします。

  • Access2007の、フォーム入力について

    下記のようなコマンドを、ボタンに追加しました。 名前の欄に入力して、ボタンを押すと、レコードの名前フィールドに入力されます。 Private Sub コマンド10_Click() If Nz(Me.名前1, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前1 & "'" End If If Nz(Me.名前2, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前2 & "'" End If If Nz(Me.名前3, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前3 & "'" End If If Nz(Me.名前4, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前4 & "'" End If If Nz(Me.名前5, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前5 & "'" End If DoCmd.Close acForm, "フォーム1" End Sub テキストボックスには、それぞれ名前1~5、という名前がつけられています。レコードが追加されるテーブルは「氏名」です。 そこで、さらにテーブルに部署フィールドを追加して、フォームに上から、部署1~5のテキストボックスを追加し、 名前と部署のテキストボックスの、それぞれ対応しているものが、同じレコードに追加されるようにするには どうすればよいでしょうか? 有識者の皆さま、どうぞよろしくお願いいたします。

  • アクセスのフォームで数値型の複数検索のについて

    アクセスのフォームで検索ボタンを設置して複数検索をしています。 下記の状態でうまくいってたのですが、依頼でまた一つ検索項目が追加になりました。 追加になった項目は数値型で”を抜いたりしたのですがうまく検索できません。 どうすればうまくいくか教えて下さい。 今のコードは以下の通りです。 Private Sub 検索ボタン_Click() Dim L1 As String If Nz(Me.品名検索, "") <> "" Then L1 = L1 & " AND 品名 Like '*" & Me.品名検索 & "*'" End If If Nz(Me.採取日検索, "") <> "" Then L1 = L1 & " AND 採取日 = #" & Me.採取日検索 & "#" If Nz(Me.数値検索, "") <> "" Then L1 = L1 & " AND 数値 = " & Me.数値検索 End If End If If L1 <> "" Then L1 = Mid(L1, 6) Me.Filter = L1 Me.FilterOn = True Else Me.Filter = L1 Me.FilterOn = False End If End Sub 数値の部分が数値型の新たな検索です。 宜しくお願い致します。

  • アクセスの複数検索で日付の絞込みの仕方

    アクセスでいま3種類の検索をかけて絞込みをしています。 テキスト型と数値型と日付で検索をかけてるのですが 日付の部分を一致だけではなくいつからいつまでという風にも絞り込みたいといわれたのですが いまいちやり方がわかりません。。。 クエリでしたら簡単なのですがすでにフォームを作成して運用していっていますので 下記にプラスして出来るようにご教授お願い致します。 今現在のコードです。 Private Sub 検索ボタン_Click() Dim L1 As String If Nz(Me.品名検索, "") <> "" Then L1 = L1 & " AND 品名 Like '*" & Me.品名検索 & "*'" End If If Nz(Me.採取日検索, "") <> "" Then L1 = L1 & " AND 採取日 = #" & Me.採取日検索 & "#" End If If Nz(Me.数値検索, "") <> "" Then L1 = L1 & " AND 数値 = " & Me.数値検索 End If If L1 <> "" Then L1 = Mid(L1, 6) Me.Filter = L1 Me.FilterOn = True Else Me.Filter = L1 Me.FilterOn = False End If End Sub 採取日を範囲指定で検索したいです。 範囲指定だけではなくその日だけ検索というのも可能ならばお願いします。 Between andでするというのだけは分かるのですが。。。

  • Accessフォームでの複数条件検索

    検索用テキストが4つとコンボボックスが1つあり、検索ボタンというコマンドボタンを押すと 該当するレコードを表示させるフォームを作りました。 以下がそのVBAです。 Private sub 検索ボタン_click() Dim strfilter As String, strexp As String, aryope As Variant If Not IsNull (me.一) Then strfilter = "And 出版社 Like '*" & Me.一 & "*'" End If If Not IsNull (me.コンボ62) Then strfilter = "And 種類 Like '*" & Me.コンボ62 & "*'" End If If Not IsNull (me.三) Then strfilter = "And 番号 Like '*" & Me.三 & "*'" End If If Not IsNull (me.四) Then strfilter = "And 発刊日 = # " & Format (me.四. "yyyy-mm-dd") & "#" End If If Not IsNull (me.一) Then strfilter = strfilter & " AND " & BuildCritera ( "タイトル", dbText, "*" Replace ( me.五, "", "*AND*") & "*") End If 改正したいことは   1. 検索用テキストボックスに入力された値全てを満たすレコードを表示したい(現在は例えば     出版社、タイトル、番号の3つを入力するとそれぞれの項目にヒットする物がすべて検出さ     れる)   2. テキストボックス[三]の番号は完全一致で抽出したい(26を抽出したいのに126や2673     等も抽出されてしまう)   3. テキストボックス[四]の発刊日は西暦表示から和暦で入力して検索したい     (テキストボックス[四]をコンボボックスに変え、西暦・和暦両方表示にし、[四A]を追加して     月日という名前にしてこれら年月日をくっつけて完全一致で検索する方法を考えましたが     記述がわかりません)   5.タイトルがWeb検索の様に複数曖昧検索ができない     中途半端な検索で抽出してる状態です。     どなたか手直しいただけますでしょうか? 

  • accessの検索フォームについて(複数条件)

    access初心者です。 本などを参考に検索フォームを作成しました。 1つの条件で検索することは出来たのですが、複数の条件を入力するとうまく検索出来ません。 全ての条件を満たすデータの抽出を行いたいと思います。 「あ」「い」「う」というテキストボックスを用意しています。 Private Sub コマンド14_Click() If Not IsNull(Me.txt_あ) Then ' Me.Filter = "あ LIKE '*" & Me!txt_あ & "*'" End If If Not IsNull(Me.txt_い) Then ' Me.Filter = "い LIKE '*" & Me!txt_い & "*'" End If If Not IsNull(Me.txt_う) Then ' Me.Filter = "う LIKE '*" & Me!txt_う & "*'" End If Me.FilterOn = True End Sub よろしくお願いします。

  • アクセスのフォームで

    アクセスのフォームで、品番一覧というテーブルを基にした、F品番一覧というフォームがあります。 ヘッダー部に検索するコンボボックスがあり、品番一覧テーブルの品番を参照しています。 検索ボタンを押すと、コンボボックスの内容に当てはまるものが、フォームの詳細部に一覧として表示させる様にしたのですが、品番に"50#1"や"50#2"という#を使い、1と2を分けている物があるのですが、コンボボックスで、この#が付いた物で検索すると検索結果がなにも表示されません。#が付いていない物はちゃんと一覧が表示されます。 #が付いている場合でもちゃんと表示するにはどの様にしたら良いですか?テーブル側の#を取り除く事はできません。 検索ボタンのコードは Private Sub 検索_Click() Dim strFilter As String, strExp As String, aryOpe As Variant If Not IsNull(Me.txt氏名) Then strFilter = strFilter & " AND 品番 Like *" & Me.品番一覧 & "*" End If Me.Filter = Mid(strFilter, 5) If strFilter = "" Then Me.FilterOn = False Else Me.FilterOn = True End If となっています。 うまく説明できなくてすいませんが、誰か教えて頂けませんか? よろしくお願いします。 End Sub

  • Accessの検索フォーム(CLng)で。

    検索フォームの項目は以下の通りです。 ○ AND  ○ OR 名前  [    ] 項目  [    ]▼  [    ]▼  [    ]▼ もとになってるテーブルは ・名前 ・項目1 ・項目2 ・項目3 ・項目4 ・項目5 というようなっています。 (項目1-5は数値データなのであいまい検索はしたくありません。) 検索ボタンのコードは Select Case Me!検索方法.Value Case 1 'or tempOper = " AND " strCount = 5 Case 2 'and tempOper = " OR " strCount = 4 End Select '名前 If Me!SyainName.Value <> "" Then condName = "(T_マスタ.氏名 like '*" & Me!SyainName.Value & "*')" WhereCond = WhereCond & tempOper & condName End If If Me!項目1.Value <> "" Then condKoumoku1 = "(T_マスタ.項目1 = " & CLng(Me!項目1.Value) & ")" condKoumoku2 = "(T_マスタ.項目2 = " & CLng(Me!項目1.Value) & ")" condKoumoku3 = "(T_マスタ.項目3 = " & CLng(Me!項目1.Value) & ")" tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If If tempCond <> "" Then tempCond = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果_一覧", acNormal, , WhereCond これを実行すると クエリ式 '((OR OR))' の構文エラー:演算子がありません。 と出ます。 どこを訂正すべきでしょうか? Access2000です。

  • Access 検索フォーム

    いつもお世話になってます。 Accessの検索フォームについて教えて下さい。 業務マスターと仕事DBという2つのデーターベースがあります。 業務マスターは共有のサーバーの中にあり、得意先テーブルをリンクして、それをもとに得意先フォームを作りました。 非連結のテキストボックス(txt検索)と非連結のリストボックス(一覧)がり、リストボックス(一覧)のクエリ得意先の抽出に使うフィールドの条件に、Like"*"&[Forms]![得意先フォーム]![txt検索]&"*" を入れました。 txt検索に文字を入れ、一覧リストボックスで絞込をし、選ぶとフォームに表示されるという流れにしたのですが・・・。 Private Sub txt検索_AfterUpdate() Me![一覧].Requery End Sub Private Sub 一覧_AfterUpdate() Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[得意先ID] = " & Str(Nz(Me![一覧], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub [Forms]![得意先フォーム]![txt検索]というパラメータがでて(今まで出たことがない) 文字を入力しても実行できませんでした。参照元が分からないのかなと思いますが、どうしたらうまくいくのか分かりません。どなたかお知恵をかしていただけないでしょうか。Accessは2003を使っています。よろしくお願いします。

  • 以下のアクセスの検索フォームで。。。

    検索フォームの項目は以下の通りです。 ○ AND  ○ OR 名前  [    ] 項目  [    ]▼  [    ]▼  [    ]▼ もとになってるテーブルは ・名前 ・項目1 ・項目2 ・項目3 ・項目4 ・項目5 というようなっています。 検索ボタンのコードは Select Case Me!検索方法.Value Case 1 'or tempOper = " AND " strCount = 5 Case 2 'and tempOper = " OR " strCount = 4 End Select '名前 If Me!SyainName.Value <> "" Then condName = "(T_マスタ.氏名 like '*" & Me!SyainName.Value & "*')" WhereCond = WhereCond & tempOper & condName End If '項目 If Me!Koumoku1.Value <> "" Then condKoumoku1 = "(T_マスタ.項目1 like '*" & Me!Koumoku1.Value & "*')" condKoumoku2 = "(T_マスタ.項目2 like '*" & Me!Koumoku1.Value & "*')" condSKoumoku3 = "(T_マスタ.項目3 like '*" & Me!Koumoku1.Value & "*')" tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If If tempCond <> "" Then tempComd = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果_一覧", acNormal, , WhereCond これを実行すると クエリ式 '(OR((T_マスタ.項目1 like …')の構文エラー:演算子がありません。 と出ます。 どこを訂正すべきでしょうか? (項目を含まない状態ではうまく検索できてました。) Access2000です。

専門家に質問してみよう