• ベストアンサー

Access2002の重複クエリで大文字小文字を区別したい

教えてください。 Accessの重複クエリで大文字と小文字は別物として判断したいのですがやり方がわかりません。具体的には、英単語で地名と普通の名詞を区別したのです。 よろしくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

全てをVBAで処理し、重複のテーブルを作る方法は考えられるのですが、 「重複クエリ」を使う方法では、取り敢えずですが、次の方法は どうでしょうか。 ・モジュールの「新規作成」でコードウィンドに下記コードをコピーして  貼り付けます。 ・この関数は、文字列を小文字は"0"、大文字は"1"に変換します。 例えば、LSChk("AaBbCC") とすると"101011" が返ります。 ・テーブル作成クエリで必要フィールドの他に最後のフィールド欄に  例えば、重複チェックするフィールド名が[地名]とした場合ですが、   重複CHK:[地名] & LSChk([地名]) と設定します。 ・これで作成されたテーブルの[重複CHK]には、もし"Tokyo"であれば  "Tokyo10000" となっていますので、あとは、通常の重複クエリで  このフィールドの重複を調べます。 ・なお、全てVBA処理する場合は、宣言エリアに Option Compare Binary を  記述すると大、小文字を識別できます。 Option Compare Binary Option Explicit Function LSChk(St As String) As String Dim L As Integer Dim ChkOut As String For L = 1 To Len(St)   If Mid(St, L, 1) = StrConv(Mid(St, L, 1), vbLowerCase) Then     ChkOut = ChkOut & "0"   Else     ChkOut = ChkOut & "1"   End If Next L LSChk = ChkOut End Function もっと簡単な方法があるかも知れませんが、取り敢えずの方法です。 これで如何でしょうか。

marron3
質問者

お礼

本当にありがとうございました。 早速やってみました。LSChk関数ははじめてでした。 思っていたとおりのことができました。感動です。 他のことにも応用できそうです。 お手数をおかけしてすみません。 Accessが好きになりそうです。

その他の回答 (1)

noname#4564
noname#4564
回答No.1

(1) 演算で文字コードを出力し、数値として評価する (2) StrComp関数を使用する のどちらかでしょうか? いずれにせよ、速度は犠牲になります。(特に、(1)で)

marron3
質問者

お礼

早速ありがとうございました。 StrComp関数を使いたいのですが、使い方がわからないのです。申し訳ないのですが、もしよかったら教えていただけませんでしょうか?

関連するQ&A