dポイントプレゼントキャンペーン実施中!

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

A 回答 (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

もっと簡単な方法があるかも知れませんが、取り敢えずの方法です。
これで如何でしょうか。
    • good
    • 1
この回答へのお礼

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

お礼日時:2003/07/24 14:09

(1) 演算で文字コードを出力し、数値として評価する


(2) StrComp関数を使用する

のどちらかでしょうか?
いずれにせよ、速度は犠牲になります。(特に、(1)で)
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/07/22 20:55

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A