プロが教える店舗&オフィスのセキュリティ対策術

Accessのフォームで入力規制をする場合、
入力規制に LenB([フォーム名])<=10 のような記述をすれば
10文字まで規制できますが、漢字1つを1文字として規制はできないのでしょうか?

例えば、「田中」これは3文字として扱われますが実際に規制したいのは漢字2文字です。

A 回答 (2件)

フォームに入力規則はありませんよ(入力規制もね)


したがって

>LenB([フォーム名])<=10

こんな書き方は出来ません
フォームじゃなくテキストボックスでしょうか

だとしても
>「田中」これは3文字として扱われますが
これも
>LenB([フォーム名])<=10 のような記述をすれば10文字まで規制できますが
これも変ですね

Accessのバージョンが書かれていませんが2000以降はユニコードですから
文字は全部2バイト、従って

LenB([フィールド名])<=10
なら5文字
LenB("田中")
は4となります。3なんて数字は出て来っこないですよ

2文字としたいのであれば普通にLenを使えばいいのでは
漢字なのか他の文字なのかの判定はまた別の話になりますね
    • good
    • 0
この回答へのお礼

ありがとうございます。
フォームではなくテキストボックスですね^^;

お礼日時:2007/12/28 09:33

Public Function LenH(ByVal TEXT As String) As Integer


  LenH = LenB(StrConv(TEXT, vbFromUnicode))
End Function

X LenB([Forms]![フォーム1]![テキスト0])<=4
X LenH([Forms]![フォーム1]![テキスト1])<=4
O LenH([Forms]![フォーム1]![テキスト1] & "")<=4

私は、LenH関数を利用してバイト換算で規制しています。
    • good
    • 0

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