• ベストアンサー

入力できる文字数を制限する方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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文字と数えます。 では。

その他の回答 (3)

  • sienna
  • ベストアンサー率35% (51/145)
回答No.3

Accessはほとんど使用しないので詳しくは無いですが テキストボックスのプロパティで「定型入力」で 行えたような気がします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。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文字を越える分をカットして表示するとかですかね。 では。

jpnaniwa
質問者

補足

全角半角混在していてもチェックが出来るようにしたいのです。 更新前処理イベントでは、文字チェックだけを行い 参考ホームページ以外で文字の桁数の制限を行いたいのですが 何か方法はありませんか。 参考ホームページ http://www.geocities.co.jp/Milkyway-Kaigan/3714/access_support/ac97/1997_4_8_ac97_2.htm http://www.users.gr.jp/ml/archive/access/6377.asp

  • Good-S15
  • ベストアンサー率33% (149/439)
回答No.1

こんにちは。 以前、ACCESSやExcelで業務アプリを 作っていた者です。 入力文字数は、プロパティのlengthでしたか、 何かで設定可能だったと思います。 関係ないですが、入力チェックは、同一イベントで 全て行った方がよろしいかと思います。 [仕様であれば、仕方がありませんが。。。]

関連するQ&A