あいまい検索の方法

解決


えいりあん2  2003-10-22 16:41:43  No: 109342  IP: [192.*.*.*]

Sarchi = "select * From 送付先マスタ Where 会社名 ='" & Text15 & "' OR 漢字氏名 ='" & Text16 & "'"

抽出にLIKEをいれると頭の文字だけ入力で抽出できると聞いたのですが
上記のどこにいれればよいのですか?
あと数字項目と文字項目を同時に抽出しようとするとデータの型が違います
となりますが同時にはできないのでしょうか?

編集 削除
魔界の仮面弁士  2003-10-22 19:09:04  No: 109343  IP: [192.*.*.*]

# 「Sarchi」→「Search」の意味かな?


> 抽出にLIKEをいれると頭の文字だけ入力で抽出できると聞いたのですが

実行させる条件が、例えば
   WHERE 会社名 = 'Microsoft'
になっているとして、これを
   WHERE 会社名 LIKE 'M%'
とすれば、Mで始まる会社名全てがヒットします。

なお、LIKEは「文字列型」に対する検索で利用されます。(数値型列には使いません)


それと、データベースによって、LIKEで使える『ワイルドカード』が
異なりますので、その点は注意してください。

例えばOracle, SQL Serverの場合は、『_』が「任意の1文字」を表し、
『%』が「0文字以上の任意の文字列」を意味します。

一方Jetの場合は、クエリモードがANSI SQL 92の時は上記と同様ですが、
ANSI SQL 89を利用する場合は、『?』が「任意の1文字」を表し、
『*』が「0文字以上の任意の文字列」を意味する事になります。
(Jetの場合はさらに、『#』『[』『]』などを使った表現もサポートされています)


> データの型が違いますとなりますが同時にはできないのでしょうか?
抽出条件の指定が間違っていないか、確認してみてください。文字列型の列の場合は、
   WHERE 電話番号 = '012-345-6789'
のように、両端を『'』で囲む必要がありますが、数値型列では、
   WHERE 年齢 = 71
のように、両端を『'』で囲まずに指定する事になります。

もし、
   WHERE 電話番号 = '012-345-6789' OR 年齢 = 71
と書くべき所を、
   WHERE 電話番号 = '012-345-6789' OR 年齢 = '71'
のように書いてしまうと、データベースによっては、『型が違います』という
エラーを返してくる事がありますので、指定内容をよく確認してみてください。
(ただしデータベースによっては、「'」が付いていてもエラーとならず、そのまま処理される物もあります)

編集 削除
えいりあん2  2003-10-23 10:16:30  No: 109344  IP: [192.*.*.*]

魔界の仮面弁士さん丁寧な説明ありがとうございます。
抽出でSearch = "select * From 送付先マスタ Where 会社名  LIKE 'Text15%' "
としましたが結果該当なしになってしまいます。
これはなんででしょうか?

編集 削除
えいりあん2  2003-10-23 10:46:59  No: 109345  IP: [192.*.*.*]

できました

編集 削除