Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Microsoft 365)
フォーム上のテストボックスの値で抽出したい
投稿日時: 22/07/26 10:42:23
投稿者: yurappy

お世話になります。
 
抽出の事で教えてください。
 
フォームにテキストボックスを2つ設けて、1つは日付け、もう一つは品名の一部語句で検索をしたい
のですが、抽出がうまくできないのです。
 
日付け入力用のテキストボックス名は「 hiduke 」、品名の入力用のテキストボックス名は
「 keyword1 」 と設定しております。
 
クエリのデザイン画面で、日付けのフィールドの条件の箇所に [Forms]![フォオームの名称]![hiduke] 
と記述をして抽出したら動作したので、
続けて品名のフィールドの箇所にも [Forms]![フォオームの名称]![keyword1] の様に追記して、
確実に含まれている語句 例 *群馬* と入力して試すと何も表示されずエラーも出ませんでした。
 
試しに、直接、Like "*群馬*" 様に書いてクエリを実行すると、該当する日付けと群馬を含む
レコードが正しく抽出できました。
 
ネットなどをみて、
 
  Like "*"&[Forms]![フォオームの名称]![keyword1]&"*" 
  "*"&[Forms]![フォオームの名称]![keyword1]&"*" 
 
の様にして試したら、「式が正しく入力されていないか、複雑すぎて評価できません。 後略 」 
とエラーになってしまいました。
 
 
テキストボックスがいけないのかと思い、
日付けのフィールドの箇所に [Forms]![フォオームの名称]![keyword1] の様に書いて
日付けを入力して試すと、該当する日付けのレコードだけ抽出できました。
 
 
すみませんが、フォーム上にある2つのテキストボックスの値 1つは日付けの値、
もう一つは語句の一部を含む値 として抽出をする方法がありましたら教えてください。
(今後、 日付け・語句の一部・住所の一部 の様に、3つのテキストボックスの値での
抽出になるかもしれません。)
 
 
宜しくお願いいたします。

回答
投稿日時: 22/07/26 11:19:58
投稿者: sk

引用:
品名のフィールドの箇所にも [Forms]![フォオームの名称]![keyword1] の様に追記して、
確実に含まれている語句 例 *群馬* と入力して試すと何も表示されずエラーも出ませんでした。

・Like 演算子を記述していないので、"*" はワイルドカードではなく
 ただの文字として解釈される。
 
・フィールド[品名]の値が "*群馬*" という文字列と完全に一致するレコードが
 そのテーブルに存在していなければ、何も抽出されないのは当然の結果である。
 
引用:
Like "*"&[Forms]![フォオームの名称]![keyword1]&"*"

基本的には上記のように記述すればよいはず。
 
引用:
式が正しく入力されていないか、複雑すぎて評価できません。

とりあえず、次の 2 点について明記されることをお奨めします。
 
・そのクエリの SQL ビューの内容
 
・抽出条件の設定対象となっている各フィールドのデータ型

回答
投稿日時: 22/07/26 11:24:58
投稿者: hatena
投稿者のウェブサイトに移動

テキストボックス([keyword1)に「*群馬*」というようにワイルドカード文字も入力して抽出するなら、
品名の抽出条件に、下記のように記述すればOKてす。
 

Like [Forms]![フォーム名]![keyword1]

 
ワイルドカード文字を入力せずに「群馬」と入力して、部分一致で抽出したいなら、下記になります。
 
Like "*" & [Forms]![フォーム名]![keyword1] & "*"

投稿日時: 22/07/26 13:59:30
投稿者: yurappy

skさま、hatenaさま、ご親切にありがとうございます。
 
お世話になります。
 
教えていただいた記述の仕方で無事に動作いたしました。
ありがとうございました。
 
私が書くと同じエラーになるので、コピペしてフォーム名の箇所だけ直したら思うように抽出ができました。
 
そして、質問の仕方が下手ですみませんでした。
徐々に、勉強をいたして行きます。
 
本当にありがとうございました。
また、困った時にはお助けしてください。
 
よろしくお願い申し上げます。