• ベストアンサー

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

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

  • Access2000の入力桁制限

    Access2000を使用しています。 フォームにテキストボックスを作成しています。 テキストボックスに入力桁数を 制限をかけたいと思っています。 テキストボックスは非連結をしています。 どのように設定すればよいのでしょうか?

  • テキストボックスの文字数制限について

    エクセル2000でVBAを勉強中の初心者です。 ユーザーフォームのテキストボックスに入力できる文字数の制限や、ボックス内での文字の折り返し表示はできるのでしょうか。どなたかご指導いただけないでしょうか。

  • access テクストボックスの入力文字数制限

    access2007にて フォームのテキストボックスの入力文字数を制限したいのですがうまくいきません。英数字などはうまくいくのですが、ひらがなや漢字などまだ入力値が確定していない場合は不可能なのでしょうか? ちなみに、すべてキー入力時で制限をかけたいです。ご指導お願いいたします。

  • ACCESS 入力文字数制限

    初歩的だとは思うのですが フォームで、テキストの入力文字数を制限したいのですが、 方法が良く分からず、出来るのかどうかもわかりません。 エラーチェックとかではなく、たとえば3文字以上ぜったい入れられないように。 (HTMLで言うところのmaxlengthみたいな感じで・・) どなたか教えてください。お願いします。

  • 【Access2010】 改行数および文字数の制限

    下記リンクを参考に、更新前処理とキー入力時に改行数の制限をかけました。 ※テキストボックス名「申請理由」 参考リンク → http://www.accessclub.jp/bbs3/0064/superbeg24259.html ここに、さらに1行当たりの文字数を「35」(バイト数70)という制限を追加したいのですが、どうすればよろしいでしょうか?

  • テキストボックスの入力文字を16進数のみに制限する

    VC++2005、.NET2.0、C++/CLIにてWindowsアプリを作成しています。 テキストボックスの入力文字について、 「00」~「FF」の16進数文字(半角)のみ入力可能としたいのですが、 どうやって制限をかければ良いのでしょうか? また、もし16進数のみの制限が不可能であれば、 半角英数字のみの制限でも良いと考えています。

  • Access2003 フォームでの入力制限

    AccessでVBAを使用している途中わからないところが でてきましたのでお教え頂ければと思います。 WindowsXPでAccess2003を使用しております。 さっそくですが、まずデータ入力用のフォームがあります。 数量を入力するテキストボックスがあり、そこに入力された値が 0以上100未満ではない場合エラーを表示するようなVBAを使用しています。 このエラーチェックをVBAで直接値を指定するのではなく テーブルにあるマスターを参照して判断することは可能でしょうか。 少々わかりにくいですかね…; 項目 下限 上限 ------------------- 数量   0    100 金額  500  5000 上記マスタがあります。 フォームにて数量のテキストボックスに値を入力し、とあるボタンを クリックした際にこのマスタを見に行き、0未満あるいは100以上の 場合はエラーを表示させたいのです。 こういう場合はADO?という記述を使用しなければならないのでしょうか… よろしければお教えください。

  • 文字数の制限について

    TextBoxの文字数の制限が上手くいかなくて困っています。 ◆問題点1 最大入力文字数を、半角は50文字、全角は25文字と設定したいです。 下記の質問を参考にし、キーボード入力の制限をかけることが出来ました。 質問:テキストボックスへの文字の入力について http://oshiete1.goo.ne.jp/kotaeru.php3?q=287224 しかし、最大文字数が入力されているときに「貼り付け」を行うと 設定以上の文字数が入力されてしまいます。 入力文字数+貼り付け文字数が、最大入力文字数よりも長ければ、 コピーを禁止したいのですが、何か良い方法はございますか? ◆問題点2 MaxLengthに設定した最大文字数よりも1文字分長く、入力できてしまいます。 MaxLength = 4 と設定したTextBox(仮に「Text1」とします)に半角文字を4文字分入力します。 (このとき、ぴったし4文字分キーボードを押下します。) 次に半角文字2文字分をコピーし、Text1のなかの1文字をドラックして貼り付けます。 (ドラックする文字は最後尾以外です。) 上記手順を行うと、Text1には5文字分入力されてしまいます。 どのような処理を行えば、"4文字まで"と必ず制限できますか? 問題点1、2のどちらか一つでも構いませんので、対処法を教えていただけますか? 宜しくお願いいたします。 なお、環境は Microsoft Windows 2000 Microsoft Visual Basic 6.0 です。

  • Access2007 textboxに入力できない。

    Access2007 textboxに入力できない。 非連結のフォーム上に、非連結のテキストボックスを張り付けたのですが、入力ができずに困っています。 カーソルは来ていて、試しにVBAで値を入れてみると表示はされるのですが、プロテクトが掛っているように、入力ができません。 テキストボックスの Enabled=true Locked=false になっています。 どのあたりを見ればよいのかもわからず、苦慮しております。 よろしくお願いいたします。

  • 入力文字のバイト数

    いつも参考にしております。 入力文字のバイト数のカウントについて質問をさせていただきます。 入力フォームなどで、入力文字数の制限をしたいと考えております。 文字を入力するたびに、バイト数がテキストボックスに常に 表示されるようにしたいと考えております。 以下を参考にできるのではないとか思っておりますが。 <script language="javascript"> <!-- function check() {  txt = document.myFORM.myTEXT.value;  n = txt.length;  if (n > 10) alert("10文字以内にしてください"); } --> </script> <form name="myFORM"> <textarea rows="3" name="myTEXT" onChange="check()"></textarea> </form> ご教授お願いいたします。

専門家に質問してみよう