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

ACCESS2000でVBA を使用して、フォーム上の非連結テキスト ボックスに入力できる文字数を制限する方法を教えて下さい。(更新前処理のイベントでは、文字のチェックを行います。)

A 回答 (4件)

再びmaruru01です。



文字を入力するごとにチェックするのであれば、やはり変更時イベントだと思います。(10文字以内の制限とする)

Private Sub テキストボックス_Change()

  Dim temp As String

  temp = Me!テキストボックス.Text

  If Len(temp) > 10 Then
    MsgBox "文字数オーバー"
    With Me!テキストボックス
      .Text = Left(temp, 10)
      .SelStart = 0
      .SelLength = Len(.Text)
    End With
  End If

End Sub

普通にLen関数を使えば、全角半角関係なく1文字と数えます。

では。
    • good
    • 0

Accessはほとんど使用しないので詳しくは無いですが


テキストボックスのプロパティで「定型入力」で
行えたような気がします。
    • good
    • 0

こんにちは。

maruru01です。

VBでは入力文字数を制限する、「MaxLength」というプロパティがありますが、確かAccessにはそれに該当するプロパティは無かったような気がします。

したがってテキストボックスのキー入力時イベント(KeyPressイベント)に以下のようにするとかですね。(例では10文字以内に制限)

Private Sub txt高さ_KeyPress(KeyAscii As Integer)
  If Len(テキストボックス.Text) >= 10 Then
    MsgBox "文字数オーバー"
    KeyAscii = 0
  End If
End Sub

この場合11文字目をキー入力することが出来なくなります(入力が取り消される)。
ただし、コピペした場合はその限りではありません。
その場合は、変更時イベント(Changeイベント)で文字列長をチェックして、前から10文字を越える分をカットして表示するとかですかね。

では。

この回答への補足

全角半角混在していてもチェックが出来るようにしたいのです。
更新前処理イベントでは、文字チェックだけを行い
参考ホームページ以外で文字の桁数の制限を行いたいのですが
何か方法はありませんか。


参考ホームページ http://www.geocities.co.jp/Milkyway-Kaigan/3714/ …

http://www.users.gr.jp/ml/archive/access/6377.asp

補足日時:2002/07/09 15:06
    • good
    • 0

こんにちは。



以前、ACCESSやExcelで業務アプリを
作っていた者です。

入力文字数は、プロパティのlengthでしたか、
何かで設定可能だったと思います。

関係ないですが、入力チェックは、同一イベントで
全て行った方がよろしいかと思います。
[仕様であれば、仕方がありませんが。。。]
    • good
    • 0

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

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