Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

Module 文字列をASCIIコードに変換する関数 
《大文字・小文字・半角・全角を区別》 (Ac97,Ac2000,Ac2002)
Access では、文字列の大文字・小文字・半角・全角の区別はありません。

つまり、 「SAKURA」「sakura」 「SAKURA」 「sakura」は、
全て同じ文字列とみなされます。
また、「さくら」 と 全角の 「サクラ」 と 半角の 「サクラ」 も全て同じとみなされます。

これでは少し困ります。これらの文字列を区別する必要も多々あります。
そんなときの為に、文字列を ASCIIコードに変換する関数を作りました。
文字列をそのまま比較すると区別は出来ませんが、文字コードでは区別できるからです。

以下のコードを標準モジュールに貼り付けてください。
Function strASC(ByVal myString) As String
'文字列をASCIIコードに変換する関数(半角英数用)
'2004/12/29 pPoy
    Dim strData As String
    Dim i As Long
    If IsNull(myString) Then Exit Function
    
    strData = ""
    For i = 1 To Len(myString)
        strData = strData & Asc(Mid(myString, i, 1))
    Next i
    strASC = strData
End Function
≪使いかた≫

クエリなどで直接 Access 標準の関数と同様に、 strASC([名称])
のように指定します。 勿論コード内でも使用できます。
  • [名称] が "sakura" だった場合結果は、1159710711711497 となります。

  • [名称] が "SAKURA" だった場合結果は、836575858265 となります。

  • [名称] が "SAKURA" だった場合結果は、
    -32142-32160-32150-32140-32143-32160 となります。
この頁のTOPへTop
文字をASCIIコードに変換した結果は、全角文字の場合結構長くなります。
マイナスも発生する為ちょっと見にくいです。
以下は、文字列を文字コード (16進数) に変換する関数です。

文字列に全角が含まれる場合にお勧めです。
Function strHEX(ByVal myString) As String
'文字列のASCIIコードを16進数に変換する関数 (全角もOK)
'2004/12/29 pPoy
    Dim strData As String
    Dim i As Long
    If IsNull(myString) Then Exit Function
    
    strData = ""
    For i = 1 To Len(myString)
        strData = strData & Hex(Asc(Mid(myString, i, 1)))
    Next i
    strHEX = strData
End Function
≪結果≫
  • [名称] が "sakura" だった場合結果は、73616B757261 となります。

  • [名称] が "SAKURA" だった場合結果は、53414B555241 となります。

  • [名称] が "SAKURA" だった場合結果は、82728260826A827482718260 となります。
≪注意≫
  • [名称] が null だった場合結果は、「""」 (長さ 0 の文字列) となります。

  • [名称] が スペースだった場合結果は、スペースの文字コードが返ります。

  • [名称] が 数値だった場合結果は、文字列としてのコードとなります。
    たとえば数値の 「-1」 を指定した場合、文字列としての 「"-1"」 と同じ結果になります。

  • クエリでの使いかたは こちら をどうぞ


この頁のTOPへTop

【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2004