• ベストアンサー

Access 抽出条件に「Like」と自動で表示される場合とされない場合

ものすごく初歩的な質問で失礼します。 Accessをはじめたばかりでテキストを見ながら操作しています。 フィールドの抽出条件として例えば「*東京*」と入力すると確定した後は「Like "*東京*"」と自動で「Like」が入ります。 「ま行」で始まる抽出をしたいので「[マ-モ]*」と入力した場合は自動で「Like・・・」となりません。 この場合は、自分で入力しなくてはいけないんですか? 何か規則みたいなのがあるのであれば教えてください。 ものすごく初心者ですので「こうやって考えるといいよ」というように教えていただけると助かります。

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

  • ベストアンサー
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.1

こんにちは。 確かにいじっていてこういう経験を私もしたことがあります。 質問者の問いに正確に答えられるのは多分マイクロソフト社の担当者 のみではないかと思います。 というのは、この自動変換というのは設計者が統計的に多くの使用者が 間違え易いケースを自動的に修正させているのです。 例えば「[マ-モ]*」では確かにエラーになりますが、「*[マ-モ]」だと LIKE "*[マ-モ]"になるはずです。 これは本来LIKEは LIKE "*XXX*"と"で囲む、且つ*が付いたりするのが 正式です。 しかし、使用者がLIKEを宣言し、次に*を記述したのであれば、この*は 不特定文字で使用したと判断し次に[ ]で囲んであるので、この組み合わせだと認識させ正しく変換させようとしますが、*が逆に付いた場合 LIKEは[ ]この文字で検索するものと最初認識してしまい、後の*は ]にすぐ*をつける形は文法上ありえないの上、自動修正候補にないので エラーとなるのでしょう。 ですので、規則性を追うよりは正しい文法の形を覚えていき、 手間が増えた場合、略せるか試しながら使うと考えた方が良いと 思います。 全く別のケースですが、アクセス97でサブフォームを作成し そのフィールドに値の代入マクロを設定したりする場合、提供されている 作成ウィンドウで作るとエラーになるのです。 流れどおりにつくっているのにです。! 流れで作ると Forms![ABCフォーム]![XYZフォーム].フォーム![フィールド3] ですが これではエラーで 動かすには  [Forms]![ABCフォーム]![XYZフォーム].[Form]![フィールド3]と 最初の[ ]の違いとフォーム![フィールド3]と[Form]![フィールド3]の[ ]を なおさなければならないのです。 *これはアクセス2000でも修正されていませんでした。  参考書をみて違いを見つけ出し、この時は作動させました。 この様に多々あると思いますので、規則性について全てお答えできる 使用者は多分いないだろうというのが私の私的見解です。 長文失礼致しました。

kunikunichan
質問者

お礼

大変納得できました。 いけないとわかっていても、ついついこだわってしまうタイプなのでご説明いただき「理解」することができました。 お世話になりました。

その他の回答 (1)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

先頭文字だけの条件なら 少し不自然ですが Between "ま" And "も終"

kunikunichan
質問者

お礼

ありがとうございました。

関連するQ&A

  • Access 抽出条件を自動で入力したい

    お世話になります。 マクロもVBAも現在鋭意勉強中の初心者ですが、よろしくお願いします。 取引先から送られてくるテーブルの、とあるフィールドにいつも不要なデータが入っています。 作業は、その不要なデータの削除から取り掛かるのですが、これが何気にめんどくさくて 自動化できないものかと、今回、質問させていただきます。 結果として、       フィールド1 フィールド2 フィールド3 フィールド4 抽出条件        like "a*" または           like "b*"               like "c*"               like "d*"               like "e*" ↑のような状態に、マクロないしVBAを使用し、抽出条件に、上記の文字列を自動で入力することは可能なのでしょうか? また、可能ならばどのようにすればいいのでしょうか? テーブルのフィールド数は毎回違いますが、 フィールド2に不要なデータが入っているのは決まっています。 フィールド2のデータ型はテキスト型です。 Access2007を使用しています。 どうぞ、よろしくお願いします。

  • ACCESSでのクエリ抽出条件について

    ACCESS超初心者です。 自分なりに調べたのですが、知識不足によりお手上げ状態です。 クエリの抽出条件について、どなたかご教授いただけますでしょうか? OS:XP ACCESS:2000 ・フォーム上に自由に入力できるテキストを3つ用意します。 ・入力された3つのテキストが1つのフィールドに含まれるものをクエリで抽出したい。 ・3つのテキストが空欄の場合は全てのデータを抽出したい。 ■フォーム上のテキスト  テキスト1:テキスト10  テキスト2:テスト11  テキスト3:テスト12 ■テーブル  フィールド1:問合せ内容(1) ■クエリ内の抽出条件 Like "*" & [Forms]![F_検索テスト]![テキスト10] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト11] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト12] & "*" テキスト名がおかしいのですが、ご了承下さい。

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • Accessでの日付の表示と抽出

    (1)日付型の連結テキストボックスに入力し、データを保存していきたいのですが、入力するとき"2003"と年度だけ入力するだけで、"2003/10/26"と保存されていくようにしたいのですが、どのようにしたらテキストボックスに年度だけの表示&入力にできますでしょうか。 (2)クエリの年度のフィールドにおいて、現在の年度を抽出条件に入力して抽出したいのですが、抽出条件欄にどのように入力すれば現在の年度がとれますでしょうか? 大変初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

  • SQL LIKE演算子 抽出できない

    VB6でAccess2003のテーブルから情報を抽出したいと思っています。 「東京都千代田区」、「東京都新宿区」と入力するとそれらに該当 するレコードが全て抽出されてきます。しかし「東京都」だけ入力して 「東京都」から始まるレコードを全て抽出しようと「%」を使用して書換えました所、なにも抽出できなくなりました。 Set DB = OpenDatabase("c:\SalesManager\jdb.mdb") strSQL = "SELECT * FROM t_USER " strSQL = strSQL & "WHERE KOKYAKUMEI LIKE "   strSQL = strSQL & "'" & "%" & txtUser.Text & "%" & "'" 初歩的な質問で申し訳ございませんが、ご教授頂きたく思います。 よろしくお願いします。 「%」を使用しなかった時のコード strSQL = strSQL & "'" & txtUser.Text & "'"

  • 除外抽出条件

    こんにちは、SQLの抽出条件でわからないところが在るのでよろしくお願いします。 テキスト型でメールアドレスの入ったフィールドに対して抽出をしたいのですが、"@" の含まれていないフィールドの抽出の仕方がわかりません。含まれる場合は select * from テーブル where メールアドレス like '%@%' で出来ます。含まれない場合、 select * from テーブル where メールアドレス <> の後にどう記述すれば言いのでしょうか?

  • Accessのクエリの抽出条件で・・・

    Accessのクエリの抽出条件で、例えば住所フィールドがあってそこから、「東京都と大阪府と福岡県」以外を抽出してくる、と言ったような場合はどのように入力すればいいのでしょうか?「<>」や「Not」を用いてand関数も用いてるのですがうまくいきません。入力の仕方が間違っているのでしょうか?またそれをパラメータクエリで行えるように設定したい場合はどのようにすればいいのでしょうか?お教え下さい。よろしくお願い致します。

  • Access 抽出クエリーについての条件

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

  • Accessクエリでの複数の抽出条件設定

    Accessを利用して住所録のデータベースを作成しています。パラメータークエリを利用して複数の項目の検索結果をフォーム上に表示させたいのですが上手くいきません。 フリガナと勤務先の二つのフィールドを利用して検索結果を表示したいのですが, ・フリガナだけに条件を入力した場合 ・勤務先だけに条件を入力した場合 ・フリガナと勤務先の両方に条件を入力した場合 の3つのパターンを想定しています。 例えば,フリガナと勤務先の両方の検索結果を表示させる場合,フリガナフィールドの抽出条件に Like [フリガナを入力] & "%" 勤務先フィールドの抽出条件に Like [勤務先を入力] & "%" Or Is Null と入力すると,フリガナと勤務先の両方に検索条件を入力した場合, ・フリガナが該当し,かつ勤務先が該当するデータ のほかに ・フリガナが該当し,勤務先が空白のデータ が抽出されます。フリガナと勤務先の両方に検索条件をいれたときには,勤務先が空白のデータを抽出しないようにしたいのですが,どうしたら良いでしょうか。フリガナだけで検索するときには,勤務先が空白かどうかは考慮しない結果を表示させたいと思います。 ちなみに, フリガナフィールドの抽出条件に Like [フリガナを入力] & "%" 勤務先フィールドの抽出条件に Like [勤務先を入力] & "%" とすると,勤務先だけで検索したい場合に,勤務先の記載がない人のデータが出てこなくなってしまいます。 初心者ですが,よろしくお願いいたします。

  • Accessの抽出条件で""やLikeが省略される時とされない時は何故?

    クエリの抽出条件で、自動的に""やLikeが付く場合と付かない場合がありますよね。 なぜ省略されるのか・されないのか明確な理由を教えてください。 過去の回答を見ても詳しく書いてないのでわからないのです。 どなたか分かりやすく教えてください。 気になってしょうがありません。

専門家に質問してみよう