• ベストアンサー
  • 困ってます

フィールドのデータ型で検索結果に差が出る[2]

正確にはフィールドのデータ型と検索条件「And・Or」の違いで検索結果に差が出るになります。 [アドバイス訴求の背景] 別件「フィールドのデータ型で検索結果に差が出る」でアドバイスをお願いして居りました者です「終了」。実は別の式もアドバイス頂いていた経緯があり、そちらで再度試してみたところメモ形でも「Or」条件であれば、正常に検索できることが確認できました。実は、アドバイスを頂いた記述を私が間違って設定していた為、別件の質問の通り「メモ形」は検索できていませんでした。本当に申し訳ございません。以上の経緯「私のプア」もあり、再度アドバイスをお願いすることに気も引けましたが、アドバイスを提供して下さった方に失礼であると思い投稿しました。 [気になっていること] クエリのパラメータ検索「複数パラメータ」に於いて、フィールドのデータ型が「メモ形」で「And」条件の時だけ検索できません。 1,データベースオブジェクト「簡略」 ・テーブル:世界情報 ・フォーム:世界情報フォーム ・フィールド名:情報   フィールドサイズ:メモ ・フォールド名:タイトル フィールドサイズ:200 ・世界情報クエリ1,2,3,4,「パラメーター(複数パラメータ表示)」 2,フィールド名「情報(メモ形)」を検索フィールドに指定「下記の式(Or)」した時は問題なく検索結果を返します。 Like "*" & [Forms]![情報]![検索1] Or Like "*" & [Forms]![情報]![検索2] Or Like "*" & [Forms]![情報]![検索3] & "*"(情報フィールドの抽出条件にのみ記載) 3,フィールド名「情報(メモ形)」を検索フィールドに指定「下記の式(And)」した時は全て「登録した情報はありません」を返します。 Like "*" & [Forms]![情報]![検索1] And Like "*" & [Forms]![情報]![検索2] And Like "*" & [Forms]![情報]![検索3] & "*"(情報フィールドの抽出条件にのみ記載) ※検索1と検索2にしても結果は同じでした。 4,その他 Like "*" & [Forms]![情報]![検索1] And Like "*" & [Forms]![情報]![検索2] And Like "*" & [Forms]![情報]![検索3] & "*" の式をクエリの記載場所が異なるので「式1: 」は付いていません。 以上ですが、宜しくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数120
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.3
  • kkkkkm
  • ベストアンサー率60% (1105/1827)

> 「検索1の文字列がフィールドに含まれる。検索2の文字列がフィールドに含まれる。検索3の文字列がフィールドに含まれる。上記すべての条件が合致するデータ」となっていました どこかがそのようになっていたのでしょう? No1での確認は検索1と検索2はフィールドの最後にあるのですかです。そうだとした場合、検索1と検索2 が両方存在する意味はないような気がしますが。 Like "*" & [Forms]![情報]![検索1] & "*" And Like "*" & [Forms]![情報]![検索2] & "*" And Like "*" & [Forms]![情報]![検索3] & "*" 上記の式でしたらそれぞれが含まれるという条件になると思います。改行を含んでの文字列は範囲に入りません。「あいう[改行]えお」の「うえ」は駄目ということです。 ちなみに、クエリに最初の抽出条件を-1として式1となる数式が入ったフィールドはないですよね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。ひとつお尋ねしたいことがありますが、検索実行時にパラメータが3個「3回」でる式で試行検証を行いましたが、検索1のパラメータ以降「検索2・検索3」をパス「何かのキーを入力するとか・・」することは可能でしょうか。現状で完全にパスすると「Or条件(Andは検索結果を返します)」では、全てのデータが表示されます。宜しくお願いします。

質問者からの補足

ありがとうございます。アドバイスの記述にて「ざっくり(レコード数が873と多い為)」ですが、試行検証の結果をご報告させて頂きます。テキストボックス「And・Or = 両方OK」は勿論ですが、メモ型フィールド「And・Or = 両方OK」も検索できました。「メモ型で5856文字数のデータも検索ヒットしました。当たり前かもしれませんが、検索条件に2「一文字」で検索するとデータに年号情報「2○○○、2○○2」があれば検索ヒットしてきます。取り急ぎご報告させて頂きます。ありがとうございました。

その他の回答 (4)

  • 回答No.5

回答No.2の続きです 先ず添付図をご覧ください メニューフォームと世界情報フォームの画面を重ねています。 メニューフォームには  世界情報フォームを開くラベルボックス[世界情報]  前回でお知らせした様のタイトルを標題したコンボボックス[標題Key]、[情報Key]  この2つのコンボボックスでクエリにフィールド追加しました   このレコードソース別にテーブルを作成してあらかじめよく使う文字列を登録をして置くと   良いでしょう、また手入力も可能です  メニュー上の[世界情報]のクリックイベントで[世界情報]フォームを開くコードは  前回はそれぞれのKeyのExitイベントで開きましたが、操作性向上の為替えました ------------------------------------------------------ Private Sub 世界情報_Click() DoCmd.OpenForm "世界情報" End Sub ------------------------------------------------------- 最初からの不都合が不明のままで、これが情報の文字数に関わりあると考え クエリのフィールドに「文字数: Len([情報])」と追加しました。 結果が添付画面です。 どうやら2033文字が限界の様です。 短いテキスト形にはフィールドサイズプッロパティーがあるのに 長いテキスト形、メモ形にはありません ご存知とは思いますが  Eval(),BuildCriteria()、Len()結果は文字列、数値ですのでクエリー上のフィールド行に配置  Likeは比較演算子なのでクエリー上の抽出条件行以下の行に配置   同じ行ではAnd条件行が違えばOr条件になります 標題の抽出条件行にLike "*" & [Forms]![メニュー]![標題Key] & "*" 情報の抽出条件行にLike "*" & [Forms]![メニュー]![情報Key] & "*"  これでよいのですが全てのレコードを上記のAnd条件を無効にするため   標題のまたは行にLike [標題Key] & "*" Or Like "*"  世界情報フォームの情報フィールド文字列が長い(2033以内)ので フォームフッタに移動しました(赤枠内) ここでは広いフィールド枠が確保できます。 添付の左端▶印(フィールドセレクタと呼びます)の情報が表示されています 数名の方と対応大変なところ補足有難うございます。 翌日は予定が詰まっているので明後日以降検討になりますが 検索条件(Like)部分から検討ください   

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。抽出条件欄への記述がシンプルで驚きましたが、複数のフィールドを対象「2個・3個」に試行検証を行いましたが問題なく検索できました。タイトルに分類付して登録することを避けたい情報「ピンポイントで検索」もありますので、設定がシンプル「式が短いなど・・・」であることも良いと感じました。従いまして、データベースの情報内容「文字情報が数千のDBの存在・・・」で使い分けて行きたいと思います。実際には絞り込み検索も併用しておりますが、整理した分類「対象数が増える」では無くて記憶「かすかな・直感」で検索「単語など・・・」するには、フリー検索「パラメーター検索」が最も有効かと改めて実感しました。検索ツールの充実化でデータベースの作り方も再考したく思っています。そうした意味からも気になる点等があれば、今後もアドバイスをお願いしたいと思います。本当に有難うございました。 Like "*" & [Forms]![メニュー]![標題Key] & "*"(問題なく検索) Like "*" & [Forms]![メニュー]![情報Key] & "*"(問題なく検索)

  • 回答No.4
  • kkkkkm
  • ベストアンサー率60% (1105/1827)

> 現状で完全にパスすると「Or条件(Andは検索結果を返します)」では、全てのデータが表示されます 「*」の効果を理解するとそのようになる原因がわかると思います。 以下説明が下手ですがご容赦ください。 「*」はワイルドカード文字といわれるものですべてのデータを表します。 Like "*" は、すべてのデータと一致という意味になります。 Like "*" & [Forms]![情報]![検索1] & "*" And Like "*" & [Forms]![情報]![検索2] & "*" And Like "*" & [Forms]![情報]![検索3] & "*" では Like "*" & [Forms]![情報]![検索X] & "*" ←上記はこれをAnd(もしくはOr)で繰り返しです は Like *入力された文字列* と展開されます。 なので 検索1のパラメーターに「あいう」を入れた場合 Like "*あいう*" 検索2のパラメーターに何も入れない場合 Like "**" 検索3のパラメーターに何も入れない場合 Like "**" という3個の条件が作成されます。 Like "**"はLike "*"と同じですのですべてのデータと一致です。 なので Andの場合 「あいう」が含まれるデータ かつ すべてのデータ かつ すべてのデータ となり結果「あいう」が含まれたデータが結果として返ります。 Orの場合 「あいう」が含まれるデータ もしくは すべてのデータ もしくは すべてのデータ となり結果すべてのデータが返ります。 ですので、Orでパス(未入力)をして必要なデータだけ返すことはできないと思われます。 検索用のテキストボックスでしたら、既定値に検索文字列としてありえない文字列を入れておくと、検索1だけの入力で必要なデータが返ります。 これからもLike演算子を使う事があると思いますので以下のサイトで WHERE 句とか説明がありますが、無視してもいいですので Likeでワイルドカードを利用するとはどのような事なのかを発見してください。 質問のパターンとNo3のパターンで結果が違うのがなぜなのか、「*」等のある場所で検索結果が違うのがわかると思います。 Like 演算子 https://support.office.com/ja-jp/article/like-%E6%BC%94%E7%AE%97%E5%AD%90-b2f7ef03-9085-4ffb-9829-eef18358e931

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。ヒント「ありえない文字列を入れておくと、検索1だけの入力で必要なデータが返ります」ありがとうございます。

  • 回答No.2

最初のQの報告です。 評価有難うございました。しかし解決には至ていません 再確認よろしくお願いします。  Eval()関数,BuildCriteria()関数初めてです。  おまけにEvalの中にBuildCriteriaが入れ子に成っているとは  入れ子はExcelで使いますが、Accessでも使えるのですね  これらの関数を検索しました。 Evalの解説  https://www.accessdbstudy.net/entry/20101022/p1 BuildCriteriaの解説  https://www.accessdbstudy.net/entry/20100924/p1  お陰であなたの質問に取組めるようになりました。  いい勉強をさせて頂きました、有難うございます --------------------------------------------------------------------------------------- あなたの期待はずれかもわかりませんが、情報の文字数が2014超えるとエラーが発生します。 情報の文字数が1024を超えるとエラーになるようです。 ・テーブル:世界情報 ・フォーム:世界情報 ・フィールド名:情報 フィールドサイズ:メモ1024文字を超えても暫く良いですが2048文字にではダメです ・フォールド名:標題 フィールドサイズ:200  タイトルを標題に変更したのは、命令文のチェックの為です。 世界情報のフォーム起動するためのメニューフォームに情報の検索Key,標題Keyのテキストボックスを メニュー上に配置し、 ------------------------------------------------------------------- Private Sub 情報Key_Exit(Cancel As Integer) DoCmd.OpenForm "世界情報" End Sub ----------------------------------------------------------------- 添付は フォームのクエリビルダによるクエリです 標題と情報はテーブルの情報です。また残りの2つは標題と情報より求める式が下記のように入っています 結果は-1と0のYes/No型が返ってきます。 標題Key: Eval(BuildCriteria("'" & [標題] & "'",10,"*" & Replace([Forms]![メニュー]![標題key]," ","* And *") & "*")) 情報Key: Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([Forms]![メニュー]![情報key]," ","* And *") & "*")) ------------------------------------------------------------------------------------ 要約09: Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([forms!メニュー!内容])]," ","* And *") & "*"))要約09: Eeria("'" & [情報] & "'",10,"*" & Replace([内容(一文字可)]," ","* And *") & "*"))

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。取り急ぎご報告致します。 1,下記のアドバイス「設定」ですが対処「分かっていない(すいません)」できていません。 世界情報のフォーム起動するためのメニューフォームに情報の検索Key,標題Keyのテキストボックスをメニュー上に配置し、 ------------------------------------------------------------------- Private Sub 情報Key_Exit(Cancel As Integer) DoCmd.OpenForm "世界情報" End Sub 2,試行検証のご報告 試行検証「ざっくりですが」の結果は以下の通りですが、メモ型テキストが上手く行っていません。「下記の記述をクエリに記載しました」フォームは4つ作りました。世界フォームマスターにコマンドボタンを4個配し、それぞれのフォーム「世界情報フォーム1,2,3,4」を開いています。 ・テーブル:世界情報 ・フォーム:世界情報フォーム1,2,3,4(4フォーム) ・フィールド名:情報   フィールドサイズ:メモ型 ・フォールド名:タイトル フィールドサイズ:200 ・世界情報クエリ1,2,3,4,「パラメーター(複数パラメータ表示)」 [検索結果を返します] 世界情報フォーム1:Eval(BuildCriteria("'" & [タイトル] & "'",10,"*" & Replace([Forms]![メニュー]![タイトルkey]," ","* And *") & "*")) 世界情報フォーム2:Eval(BuildCriteria("'" & [タイトル] & "'",10,"*" & Replace([Forms]![メニュー]![タイトルkey]," ","* Or *") & "*")) 「式が正しく入力されていないか、複雑すぎるため評価できません。たとえば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にしてください。」と返します。 世界情報フォーム3:Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([Forms]![メニュー]![情報key]," ","* And *") & "*"))「抽出条件」-1 世界情報フォーム4:Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([Forms]![メニュー]![情報key]," ","* Or *") & "*"))「抽出条件」-1 以上ですが、宜しくお願いします。

  • 回答No.1
  • kkkkkm
  • ベストアンサー率60% (1105/1827)

> Like "*" & [Forms]![情報]![検索1] And Like "*" & [Forms]![情報]![検索2] And Like "*" & [Forms]![情報]![検索3] & "*" 検索1の文字列がフィールドの最後にある 検索2の文字列がフィールドの最後にある 検索3の文字列がフィールドに含まれる 上記すべての条件が合致するデータ でいいのですか。 Like 演算子 https://support.office.com/ja-jp/article/like-%E6%BC%94%E7%AE%97%E5%AD%90-b2f7ef03-9085-4ffb-9829-eef18358e931

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。私が考えていた検索とは以下の通りでした。ただ、メモ形フィールドに記載されたデータが、内容により区別が必要なケースにおいて、その区切りの明確化として空白「余白」行を設けているケースがあります。私の指す検索とはこの余白を含めた全文字「空白は無視されるとものと思っていましたが・・・」からの検索を意味していました。 従いまして、「検索1の文字列がフィールドに含まれる。検索2の文字列がフィールドに含まれる。検索3の文字列がフィールドに含まれる。上記すべての条件が合致するデータ」となっていました。基本的に考え直さないといけないのでしょうか。

関連するQ&A

  • フィールドのデータ型で検索結果に差が出る

    クエリのパラメータ検索「複数キー入力」に於いて、フィールドのデータ型の違いで、検索ができない状態になる。スキルが低く現状突破ができていません。ご面倒をお掛けしますが、アドバイスを宜しくお願い致します。 [気になっていること] フィールドの「データ形」で「メモ形」だけ検索できない現象がでます。「メモ形」を持つデータベースは同じ結果「検索できない」になりました。勿論、私のデータベースの作り方に問題があるかもしれませんが。 [こだわりの背景] 対象のデータベースは作り始めて歴史が長く「全873レコード」、作り始めの頃「習い始めの時期」のタイトル付けがプアであり、「情報」での検索が可能になれば、検索効率が向上し更に有効に活用できると考えています。 [お願い・・・(反省)。] 設定等の内容にて以下記載の通りですが、アドバイスをお願いできればと思います。式に付きましては、このサイトで親身にご対応頂きましたが、質問時にデータ型の情報は詳しくお伝えしていませんでした。反省しております。 1,データベースオブジェクト「簡略」 ・テーブル:世界情報 ・フォーム:世界情報フォーム ・フィールド名:情報   フィールドサイズ:メモ ・フォールド名:タイトル フィールドサイズ:200 ・世界情報クエリ1,2,3,4,「パラメーター(スペースで区切り複数条件設定可)」 2,フィールド名「タイトル(テキスト形)」を検索フィールドに指定「下記の式」した時は問題なく検索結果を返します。 式1: Eval(BuildCriteria("'" & [タイトル] & "'",10,"*" & Replace([表題(一文字可)]," ","* And *") & "*")) 抽出条件:-1 式1: Eval(BuildCriteria("'" & [タイトル] & "'",10,"*" & Replace([表題(一文字可)]," ","* Or *") & "*"))  抽出条件:-1 3,フィールド名「情報(メモ形)」を検索フィールドに指定「下記の式」した時は「式が正しく入力されていないか、複雑すぎるため評価できません。たとえば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にしてください。」と返します。 式1: Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([内容(一文字可)]," ","* And *") & "*")) 抽出条件:-1 式1: Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([内容(一文字可)]," ","* Or *") & "*"))  抽出条件:-1 4,その他 Eval(BuildCriteria("'" & [情報] & "'",10,"*" & Replace([内容(一文字可)]," ","* And *") & "*"))の式をクエリに記載すると先頭に「式1: 」が勝手に付いてしまいますが、動作に問題はないでしょうか。 以上ですが、宜しくお願いします。

  • ACCESSでクエリーを使った検索

    VBAを使えば簡単にできるのですが、事情があり、クエリーのみで行わなければいけません。 フォームに入力された情報を元に検索できるクエリを作成しました。 通常でしたらクエリのフィールド名の下の抽出条件に Forms![F_検索]![検索条件1] とすればいいのですが、これが複数の条件を設定した場合はすべての条件を入力しないと、検索結果が出ないことから 以下のように変更しました。 フィールド名の抽出条件には何も書かず、別に式として IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=[Forms!]![F_検索]![検索条件1])) と入力しそこの抽出条件に「True」と入力しました。 これで何も入力されてない場合は全件が表示されるようになりました。 通常の検索はこれでいいのですが疑問点が2点あります。 1.期間を抽出する場合はどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Between [Forms!]![F_検索]![検索条件1] and [Forms!]![F_検索]![検索条件2])) とかしてみましたがダメでした。 2.あいまい検索をするにはどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Like [Forms!]![F_検索]![検索条件1])) なんてしてみましたがだめでした。 ご回答よろしくお願いします。

  • 【Access】複数フィールドを対象とする検索

    Access上で「検索ボタン」をクリックすると、 「データ」フォームのフィールド1、フィールド2、フィールド3のいずれかに「検索条件1」の語を含み、かつ、フィールド4、フィールド5、フィールド6のいずれかに「検索条件2」の語を含むレコードを抽出できるようにしたいと思います。 検索条件はテキストボックスに入力するようにしており、テキストボックス名は「検索条件1」、「検索条件2」となっています。 以下のコードでやってみたのですが、「実行時エラー13、型が一致しません」というエラーが出てうまく抽出できません。 Private Sub 検索ボタン_Click() Dim filter1 As String filter1 = "フィールド1 like '*" & Me!検索条件1 & "*' or フィールド2 like '*" & Me!検索条件1 & "*' orフィールド3 like '*" & Me!検索条件1 & "*'" And " フィールド4 like '*" & Me!検索条件2 & "*' or フィールド5 like '*" & Me!検索条件2 & "*' orフィールド6 like '*" & Me!検索条件2 & "*'" DoCmd.OpenForm "データ", acNormal Forms!データ!.filter = filter1 Forms!データ!.FilterOn = True End Sub 「検索条件1,2」のテキストボックスがあるフォーム上の「検索ボタン」をクリックすると、 「データ」フォームが開き、検索をかけるという流れをイメージして作成 しています。 どなたか正しい記述を教えていただけませんでしょうか。 よろしくお願いいたします。

  • データ型について

    クエリで 抽出をしようとビューで確認をすると 抽出条件でデータ型が一致しません と出ます このまま OK を押すと 全フィールドのデータが“#Name?”に なってしまいます どのように データ型を一致させたら良いのでしょうか?  日付の更新で テーブル1に氏名 Tel などが入り テーブル2に契約年 と 契約開始日とあります クエリに 契約終了日のフィールドをつくり さらに 2ヶ月前で 更新年と更新月のフィールドを作り この時点では データを確認することができるのですが、 更新年と更新月に パラメータを入れると 先ほどのエラーが出てきます どのように データ型を合わせた良いのでしょうか 教えてください 宜しくお願いします。

  • 指定のフィールド内に選択された言葉を含んだフィールド・フォームを検索し、呼び出したい。

    Access2000Proを使用しています。 メインフォームのテキストボックスを使って、指定のフィールド内に選択された言葉を含んだフォームを呼び出すコマンドを作ろうとしています。 その場合、 1)該当するQueryにはどのようなコードを書いたらよいでしょうか?例えば Like "*" & [Forms]![MainForm]![NameSearch:] & "*"のようにすれば名前の一部でもあればそのフォームを引き出すことができると思いますが、これをやや複雑にして、(a)複数の言葉を指定して、その両方が含まれているもののみのフィールドを検索したり、或いは, (b)一方のみを検索 (c)大文字・小文字による区分けは可能か?は如何でしょうか? 2)対象フィールドはデータ型がテキスト型でもメモ型でもどちらでも検索可能でしょうか?両方共可能であるならば、その差(長短所)はどこにあるのでしょうか? メモ型でOKとなればかなり長い文章からも呼び込めることになりますが検索時間がかかると思われます。 3)一つの検索したい言葉に対し、複数のフィールドをその対象とする場合、はどのようにしたら良いでしょうか? 宜しくご教授下さい。

  • ACCESS2000の複数検索条件からのデータ抽出

    こんにちわ。前回質問内容自体どう説明してよいかわからず、途中で終わってしまったので、再度、詳しく質問してみました。 今、Accessで受注管理を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:受注管理 フィールド名:受注ID・日付・商品種別・顧客名・仕入種別・状況種別 ■クエリ クエリ名:受注クエリ(フィルタ) フィールド名:受注ID(表示チェックあり)・日付・商品種別・顧客名・仕入種別・状況種別 と式1[Forms]![検索フォーム名]![日付text]・式2[Forms]![検索フォーム名]![商品種別combo]・式3[Forms]![検索フォーム名]![顧客名text]・式4[Forms]![検索フォーム名]![仕入種別list]・式5 [Forms]![検索フォーム名]![状況種別combo]の計11列です。 抽出条件:検索名フィールド: 受注IDを除く各フィールド名の下に Like "*" & [Forms]![検索フォーム]![日付text] & "*" Like [Forms]![ 検索フォーム名]![商品種別combo] Like "*" & [Forms]![ 検索フォーム名]![顧客名text] & "*" Like [Forms]![ 検索フォーム名]![仕入種別list] Like [Forms]![ 検索フォーム名]![状況種別combo] 各式の下に Like "" Like "(なし)"      Like "" Like "(なし)" Like "(なし)" を検索パターンに応じて入力しました。 マクロにより、フィルタの実行をしていますが、この方法だと4つまでなら、検索可能なのですが、5つ以上になると、「フィルタが長すぎます」というダイアログボックスがでて検索ができません。VBAやSQLはいまいちわからないので、何か簡単に、5つ以上の検索条件で検索できないでしょうか。お願いします。

  • アクセスクエリでの空白の値の表示

    フォームで条件フィールドから2つ同時の検索をかけたく クエリに以下の式を記載致しました。 検索はかかるのですが空白のデータがでてきません。 空白のデーターも表示させたいためにはどうしたらいいでしょうか? 式1: IIf(IsNull([Forms]![フォーム]![条件1]) And IsNull([Forms]![フォーム]![条件2]),True,[条件]=[Forms]![フォーム]![条件1]Or [条件]=[Forms]![フォーム]![条件2] 抽出条件  True

  • 検索結果の改善

    [使用環境] OFFICE PROFESSONAL 2007 [やっていること(データベースの検索)] マスターフォームに配置したコマンドボタンで検索結果フォームを開いています。 [やり方(検索の仕方)] クエリ「テーブル参照」のフィールドに式「Like "*" & [ ◯◯検索 ] & "*"」を設定し、関連付けた検索結果フォームで開きます。 [感じている不具合] 式「Like "*" & [ ◯◯検索 ] & "*"」をOR条件(2フィールド)にした場合、1つの目のパラメーターウインドのみ入力して、2つ目のパラメーターウインドに入力しない時、検索結果フォームに全レコードが表示されます。 [改善したいこと] 1つの目のパラメーターウインドのみ入力した場合、入力エラー「全てのパラメーターウインドに入力して下さい」とかのメッセージを表示できませんでしょうか。「その他、類似な改善方法がありましたらご指導下さい」 [改善したい背景] 使用する人が不特定「2ヶ月に一度は初めて使う人がいる」でもあり使用者本人が目視で確認「再操作行動」が取れるようにしたい。 以上ですが、宜しくお願いします。

  • <access クエリのあいまい検索>

    <access クエリのあいまい検索> こんにちわ。以前,クエリについて質問した者です。(前回質問番号:6003331) 引き続き,質問です。 前回はクエリでのあいまい検索の式についての質問でした。 今回は同じクエリで追加として別のフィールドでも同時にあいまい検索を行いたいと思っています。 名前,住所,連絡先等がある住所録があります。 クエリを使って,任意の文字検索をするように設定しています。 前回ここで教えて頂き,「京都」と入れたら,「京都市」も「京都群」もヒットするようになりました。 今回は同時に他のフィールドの検索値が入っていたら,それも一緒に表示させるようにしたいのです。 具体的には下記のとおりです。 1)住所のフィールドに「京都」が含まれている人,かつ,「田中」という文字を含む人を検索 2)単に「田中」という文字を含む人を検索 現在の入力値は下記のとおりです。 ご指導お願いします。 ■今,入力されていること フィールド:IIf(IsNull([forms]![frm条件検索]![住所名]),True,[住所名] Like "*" & [forms]![frm条件検索]![住所名] & "*") テーブル・並び替え=空欄 表示:チェックが入っています。 抽出条件:true

  • Like関数の条件をフォームから入力したい

    Accessで作成した消費者テーブルから姓だけを指定してレコードを抽出するため 下記のようにフォームとクエリを作成しました。  1.フォーム名 frm検索1 フォームから姓を入力するパラメーター名 消費者名 2.クエリで指定した条件式  Like "[Forms]![frm検索1]![消費者名]*"   テーブルではフィールド名は 消費者名、データ型は テキスト型 で定義しています。 上記の指定で検索を実行したところ、検索結果は0件となりました。 どう指定すれば良いでしょうか?