アプリ版:「スタンプのみでお礼する」機能のリリースについて

Access2003にて、空白、全角スペースを含む文字列の
検索を行う方法について教えて下さい。

他社から送られてきた検索用のリスト(xls形式)を元に、
商品の検索を下記のフィールドから行っています。
商品フィールドに商品名が約30万行格納されています。
格納されている商品名は間に
半角スペース、全角スペース、スペース無し
など不規則な入力になっています。
(例:東芝除湿機、日立 掃除機、Canon 複合機…)

商品名の検索時に文字列の半角スペースと全角スペースの
指定が異なっていると検索が行えないため困っています。
(例:Canon 複合機で検索時、格納データはCanon 複合機のため検索結果なしになる)

テーブルのスペースを統一、もしくは削除する方法などありますでしょうか。
皆様のお知恵をお貸し下さい。

なお、クエリでtrimを使用したスペースの削除は行ったのですが、
検索時に頻回にErrorが出るようになり断念しました。

A 回答 (3件)

replace("東芝除湿機、日立 掃除機、Canon 複合機"," ","",vbtextcompare) で


半角・全角かかわらず全て取り去りますので
テーブル作成クエリなどで処理されたら良いと思います。
そのテーブルをもう更新しないのならインデックスをつければ
検索は速くなると思います。

でも他から来たデータって色々と気をつけないと・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試させて頂きます。

お礼日時:2006/04/17 09:12

#1です。


NULLのときエラーになりますね。
下記を追加してください。

---
If IsNull(strD) Then
mDelSP = Null
Exit Function
End If
    • good
    • 0
この回答へのお礼

ありがとうございます。
式の意味を勉強しながら使わせて頂きます。

お礼日時:2006/04/17 09:15

原始的な方法しか思いつきませんが


1文字づつ空白判定し削除します。
----
Public Function mDelSP(strD As String) As String
Dim strW As String
Dim strC As String
Dim i As Long
strW = ""
For i = 1 To Len(strD)
strC = Mid(strD, i, 1)
If strC <> " " And strC <> " " Then
strW = strW & strC
End If
Next i
mDelSP = strW
End Function
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!