Access (VBA)

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

 
(Windows 7 Professional : Access 2010)
Like文 日本語検索について
投稿日時: 18/06/06 14:07:45
投稿者: yyysss0129

SQL文
「SELECT * FROM T_マスタ WHERE 施設名 Like "*" & Forms!F_Main!txt施設名 & "*"」
というクエリを走らせますと、思い通りに結果がでません。
 
テキストボックス「Forms!F_Main!txt施設名
」に
例えば
「東大」と入力し、上記のクエリを実行しますと
「東邦大」
とか
「東京〇〇〇〇大」
などが表示されてしまいます。
 
例えば
「〇〇東大〇〇」
「東大〇〇」
「〇〇東大」
 
とか、「東大」というかたまりだけのデータを引っ張りたい場合
どうすればいいのでしょうか?
 
ネットで調べると、
「半角英字」は、上記の構文で思った通りになるが
「全角」だと、そのようにならない?
というような記述が多い気がします(当方の勘違いかもしれませんが)
 
Accessで、イメージ通りの検索をするには、
何か工夫が必要なのでしょうか?
 
宜しくお願い致します。
 
 
 
 
 
 
 
 

回答
投稿日時: 18/06/06 14:24:59
投稿者: sk

引用:
SELECT *
FROM T_マスタ
WHERE 施設名 Like "*" & Forms!F_Main!txt施設名 & "*"

引用:
テキストボックス「Forms!F_Main!txt施設名」に
例えば
「東大」と入力し、上記のクエリを実行しますと

とか
京〇〇〇〇
などが表示されてしまいます。

[txt施設名]に "東*大" というテキストを入力されたからでは。

回答
投稿日時: 18/06/06 14:34:28
投稿者: Suzu

SELECT * FROM T_マスタ WHERE 施設名 Like "*" & Forms!F_Main!txt施設名 & "*"
 
うーん。。。これは、どこに書いているのでしょう?
VBE上では、文字列扱いになりませんので、エラーになるはず。
SQLビューでも構文エラーになります。
 
理解されていてわざとなのか、
それとも、何か改編して提示頂いているのか判断できません。
 
この後に更にテキストボックス等が続いていてとかのオチは無しですよ。
 
 
 
strSQL = _
    "SELECT * " & _
    "FROM T_マスタ " & _
    "WHERE 施設名 Like ""*""" & Forms!F_Main!txt施設名 & """*"""
Debug.Prit strSQL
 
の様に、SQLの中身が意図した通りのSQLになっているか確認しましょう。

回答
投稿日時: 18/06/06 14:41:42
投稿者: Suzu

LIKE を使用せずに
InStr関数を使用する方法もあります。
 
strSQL = _
    "SELECT * " & _
    "FROM T_マスタ " & _
    "WHERE Nz(InStr(1,[T_マスタ].[施設名], " & Forms!F_Main!txt施設名 & ",0),0)>0"
Debug.Prit strSQL

投稿日時: 18/06/06 14:42:19
投稿者: yyysss0129

申し訳ございません。
 
VBAの方に間違えて書いてしまったので
一般の方で、もう一度、質問させて頂きます。
 
お手数おかけしまして、申し訳ございません。