- 締切済み
Accessの抽出条件で""やLikeが省略される時とされない時は何故?
クエリの抽出条件で、自動的に""やLikeが付く場合と付かない場合がありますよね。 なぜ省略されるのか・されないのか明確な理由を教えてください。 過去の回答を見ても詳しく書いてないのでわからないのです。 どなたか分かりやすく教えてください。 気になってしょうがありません。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
私の例ですと 中* (パラメータクエリーとややこしいので、質問者ののように、[]を使わない)で、デザインビューの抽出条件行に入れると、クエリの実行後、意図どおりに抽出されて、そのフィールドの抽出条件行が Like "中*" に変わっていました。 こうならない入力のままの例があれば、教えてください。>ありますよね、といわれても思い出せない。 アクセスが考える正式なSQL文の一部のカタチ(条件を決める主要部)に直しているのでは。 ""をつけるのは、SQL文全体が文字列重視でWHERE以下の句のところにおき変えると、正しいSQL文になるよう、アクセス設計者が考えたのではないかな。SQLを正面から勉強したり、VBAでSQL文を使うと、感じがつかめるのではないかな。 SQLビューでは(私の例では、学校名に「中」がはいっているものを検索) WHERE (((生徒.性別)=[性別]) AND ((生徒.学校) Like "中*")); となっており、最後のLikeとその後にはめ込んだカタチだ。これを デザインビューにも反映(修正)している。
- mshr1962
- ベストアンサー率39% (7417/18945)
Likeが付くのは検索文字列にワイルドカードの設定があるときです。 *:長さ無制限 ?:長さ1文字 [長さ1文字の文字列]:1文字の文字列を複数または範囲で指定 下記は設定例 Like "*A*" Aを含む文字列 Like "A*" Aで始まる文字列 Like "*A" Aで終わる文字列 Like "[A-C]*" A,B,Cのいづれかで始まる文字列(範囲指定) Like "[A,B,C]*" A,B,Cのいづれかで始まる文字列(複数指定) Like "A?" Aで始まる2文字の文字列 Like "?A" Aで終わる2文字の文字列 ""が付くのは、検索する項目がテキスト形式、メモ形式の場合だと思います。
補足
違うんです…ワイルドカードの抽出条件のやり方は理解しているのです。 ワイルドカードを使う時に、自動的に""やLikeがつく場合と付かなくて自分で入力する場合があります。 たとえばテキスト型のフィールドに『[文字リスト]*』と抽出条件を入れると『構文が正しくありません』とエラーになります。 ダブルクォーテーションで括って『"[文字リスト]*"』にしないと動きません。 なぜ、Likeや""が自動で付かないのでしょうか?