- ベストアンサー
入力できる文字数を制限する方法
ACCESS2000でVBA を使用して、フォーム上の非連結テキスト ボックスに入力できる文字数を制限する方法を教えて下さい。(更新前処理のイベントでは、文字のチェックを行います。)
- みんなの回答 (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)
Accessはほとんど使用しないので詳しくは無いですが テキストボックスのプロパティで「定型入力」で 行えたような気がします。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。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文字を越える分をカットして表示するとかですかね。 では。
- Good-S15
- ベストアンサー率33% (149/439)
こんにちは。 以前、ACCESSやExcelで業務アプリを 作っていた者です。 入力文字数は、プロパティのlengthでしたか、 何かで設定可能だったと思います。 関係ないですが、入力チェックは、同一イベントで 全て行った方がよろしいかと思います。 [仕様であれば、仕方がありませんが。。。]
補足
全角半角混在していてもチェックが出来るようにしたいのです。 更新前処理イベントでは、文字チェックだけを行い 参考ホームページ以外で文字の桁数の制限を行いたいのですが 何か方法はありませんか。 参考ホームページ 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