アクセスのほぼ初心者です。(若干のクエリ作成と、VBAの簡単なメンテナンスなら直すことが出来る程度です。)
アクセスのフォーム画面から、文字を入力する際に次の条件を満たして制限をかけたいのですが、どのような方法がありますでしょうか。
フォームのデザインから、〔プロパティ〕で文字数制限がかけられるようですし、記号の一律入力不可にする方法(IMEをオフにする?)があるようなのですが、一部の記号は入力可能としたいので、良い方法がわかりません。
文字数:半角140字以内
入力可能な文字:半角英数字、一部の記号(ただし、&、”、# は入力不可としたいです)
初心者には難しいかもしれないのですが、できれば入力している際に、文字数オーバーや使用出来ない文字を入力している際に〔警告〕が出せればと思っています。
今のところ、良い方法が分からず、一度エクセルにエクスポートしてからチェックしているのでとても時間がかかっているので、良い方法があれば教えて下さい。
No.1ベストアンサー
- 回答日時:
文字数の制限はテーブルをデザインビューで開いて
各フィールドのフィールドサイズで指定するのが(140)
確実かつ簡単です。指定数より多く入力しようとしても無視されます。
あとはフォームでの設定になります。
半角/全角はコントロールのプロパティで、IME入力モードを使用不可にします。
入力チェックは
コントロール(仮に名前をモジモジににます)の更新前処理に
Private Sub モジモジ_BeforeUpdate(Cancel As Integer)
Dim i As Integer
Dim chkMsg(2) As String
If Len(Me!モジモジ) > 140 Then chkMsg(0) = "文字数140以内"
If Len(Me!モジモジ) <> LenB(StrConv(Me!モジモジ, vbFromUnicode)) Then chkMsg(1) = "半角だけ"
For i = 1 To Nz(Len(Me!モジモジ), 0)
If Mid(Me!モジモジ, i, 1) Like "[&""#]" Then
chkMsg(2) = "&""#は不可"
Exit For
End If
Next
If Len(Join(chkMsg, vbCrLf)) > 6 Then 'vbcrlf以外にも文字が含まれている
MsgBox Join(chkMsg, vbCrLf)
Cancel = True
End If
End Sub
入力中のチェックは面倒くさいのでほんのさわりだけですが
キークリック時イベントで
Private Sub モジモジ_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = acShiftMask Then 'Shiftキーが押されていたら
Select Case KeyCode
Case vbKey2
MsgBox """ は不可"
KeyCode = 0 '入力は無かったことにする
Case vbKey3
MsgBox "# は不可"
KeyCode = 0
Case vbKey6
MsgBox "& は不可"
KeyCode = 0
End Select
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- 会計ソフト・業務用ソフト Googleドキュメントで数式を書くには 2 2022/07/20 09:06
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Java Java 南京錠 2 2023/02/04 11:46
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Android(アンドロイド) スマホの日本語入力の選択肢を変えるには 4 2023/07/29 19:07
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
ACCESSの入力文字数の制限について
Access(アクセス)
-
-
4
Accessのテキストボックスの入力文字制限
Access(アクセス)
-
5
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
6
access テーブル内のレコードの編集を不可に。
その他(データベース)
-
7
アクセスVBAのMe!と[ ]
Access(アクセス)
-
8
ACCESS 入力文字数制限
Access(アクセス)
-
9
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
10
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
11
【ACCESS】入力規則(Len関数)の桁数の複数指定
Access(アクセス)
-
12
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
13
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
14
Accessの桁区切りについて教えてください。
Access(アクセス)
-
15
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
16
Access サブフォームでの選択行の取得
その他(データベース)
-
17
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
18
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
19
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
20
入力できる文字数を制限する方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
縦書きのテキストボックスで数...
-
アクセスのフォームに入力する...
-
半角英数入力で→を入力する方法
-
IME直接入力モードでの・(半角)...
-
エクセルの起動時の入力モード
-
σ(シグマ)の字体が途中から変...
-
次の文字もアルファベットで入...
-
win7 ISOファイルのプロダクト...
-
Windows10(エクセル)で入力し...
-
IEでのgoogleツールバーのテキ...
-
Excelの半角、全角の( )カッ...
-
エクセルで特定の列の入力モー...
-
文字入力が左上に表示され困っ...
-
アルファベットの伊語や独語の...
-
漢字入力
-
半角英数と直接入力の文字の違...
-
ウインドウズ7のメールソフト...
-
英字入力ではなく、ローマ字日...
-
ハイフンを全角で入力
-
EXCELで日本語入力ができなくな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイフンを全角で入力
-
縦書きのテキストボックスで数...
-
アクセスのフォームに入力する...
-
Excelの半角、全角の( )カッ...
-
半角英数入力で→を入力する方法
-
IMEで、テンキーから入力すると...
-
IME直接入力モードでの・(半角)...
-
テンキーからの半角数字の”直接...
-
エクセルの起動時の入力モード
-
ファイルを保存する際に日本語...
-
ハイウエイ等の小さいエや、小...
-
エクセルでの文字入力がIMEでし...
-
入力がひらがなから勝手に半角...
-
DOSコマンドで日本語名のファイ...
-
「Microsoft IME 2000」で「...
-
りと小さいつの打ち方を教えて...
-
文字変換で「うぉ」を入力した...
-
σ(シグマ)の字体が途中から変...
-
Outlook Express で、IMEの入力...
-
InputBoxでの日本語オン、オフ...
おすすめ情報