- ベストアンサー
大小・全半角の禁止文字?
Access97を使用しております。 現在↓のような形で禁止文字を設定しておりますが、大英字全角のAでも 小英字半角のaでも全て禁止文字として認識されてしまいます。 >>たぶんUnicodeのせいだと・・・(泣) これを例えば小半角英字の「a」のみを禁止文字として認識させるにはどの ような方法があるのでしょうか?ご教授お願い致します。 Dim R As Integer Dim strChk As String Dim strMoji As String '禁止文字チェック strMoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz " Me.txtMsg = "" For R = 1 To Len(Me.内容) strChk = Mid$(Me.内容, R, 1) If InStr(strMoji, strChk) <> 0 Then Me.txtMsg = "入力禁止文字「 " & strChk & " 」が使用されています。" Exit Sub Exit For End If Next R
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まだ解決していないようなので回答します。 InStr関数で色々と試してみたのですが、思った結果が得られないので StrComp関数にしてみました。 以下は、こちらでテストしたモジュールです。 ---------------------------------------------------------------------- Public Function MOJI_TEST(H_txt As String) Dim R As Integer Dim R1 As Integer Dim strChk As String Dim strMoji As String Dim txtMsg As String ' 禁止文字チェック strMoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz " txtMsg = "" For R = 1 To Len(H_txt) strChk = Mid$(H_txt, R, 1) ' For R1 = 1 To Len(strMoji) If StrComp(StrConv(Mid$(strMoji, R1, 1), vbFromUnicode), _ StrConv(strChk, vbFromUnicode), vbBinaryCompare) = 0 Then txtMsg = "入力禁止文字「 " & strChk & " 」が使用されています。" MsgBox txtMsg Exit Function End If Next R1 ' Next R ' End Function ---------------------------------------------------------------------- 後は適当に直して下さい。 ではでは・・・
その他の回答 (2)
- SpeedKing
- ベストアンサー率50% (6/12)
Unicodeで比較するっていうのは如何でしょうか。 strChk = Mid$(Me.内容, R, 1) strMoji2 = Mid$(strMoji、InStr(strMoji, strChk),1) If AscW(strMoji2) = AscW(strChk) Then StrConvでANSIに変換して比較することもできると思いますが、Unicodeでも比較できるのではと思いました。 でも試していないので自信があるわけではありません。ゴメンナサイ。
お礼
返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。
- baha
- ベストアンサー率38% (16/42)
こんにちは。 StrConv関数を使用して、UNICODEからANSI形式に変換してから チェックすればどうですか? 詳しくはAccessのHelp参照ください。
お礼
返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。
お礼
返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。