パソコンの小技・備忘録


トップページ > 小技一覧(Access) > Accessのクエリで、文字列のバイト数をカウントしたい。

Accessのクエリで、文字列のバイト数をカウントしたい。

Accessのクエリで、文字列のバイト数をカウントする方法です。
半角で入力して欲しいフィールドに、全角文字が無いかを探す際などに使用できます。

文字列のバイト数をカウントする、と聞くと関数に慣れている方は、LenB関数を思い浮かべると思います。
実際、LenB関数は、文字列をバイト単位で数える関数なのですが、Accessのクエリーで実行しますと、半角・全角・数字・英字など、何を対象にしても1文字が2バイトと返ってきます。

これは、Accessのデータ構造に原因がありまして、データをすべてUnicode(ユニコード)で保存することで生じている現象です。

【前提知識】
Unicodeでは、半角・全角を問わず、すべて2バイトで表現します。

そこで、StrConv関数を用いて、文字列をUnicodeから、システムの既定のコードページ(日本語のWindowsでは、通常はShift-JISになっていると思います。)に変更します。

変更は、「StrConv([対象フィールド],128)」と記載します。

第二引数の「128」が「既定のコードページに変換する」という意味を持ちます。

この「StrConv」と「LenB」を組み合わせることで、文字列のバイト数をカウントすることができます。

クエリに、
「バイト数:LenB(StrConv([対象フィールド],128))
と入力して、実行してください。

バイト単位で計測した値が表示されると思います。

トップページに戻る

パソコンの小技・備忘録トップページ(http://pckowaza.web.fc2.com/)を表示

※更新履歴などを掲載していますので、お気に入りはぜひトップページでお願いします!

サイト内検索

 Googleでサイト内検索

小技カテゴリー

カウンタ

メール送信

 ご意見・相互リンク募集中!
意見・相互リンクメールを送信!
inserted by FC2 system