アクセスのほぼ初心者です。(若干のクエリ作成と、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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
-
4
ACCESSの入力文字数の制限について
Access(アクセス)
-
5
Access サブフォームでの選択行の取得
その他(データベース)
-
6
入力できる文字数を制限する方法
Access(アクセス)
-
7
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
8
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
9
アクセスVBAのMe!と[ ]
Access(アクセス)
-
10
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
11
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
12
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
13
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
-
14
ACCESS 入力文字数制限
Access(アクセス)
-
15
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
-
16
access テーブル内のレコードの編集を不可に。
その他(データベース)
-
17
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
18
Accessのテキストボックスの入力文字制限
Access(アクセス)
-
19
Accessの桁区切りについて教えてください。
Access(アクセス)
-
20
空白はダメというエラーの表示(アクセス)
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハイフンを全角で入力
-
「Microsoft IME 2000」で「...
-
エクセル2002の A1, B1, C1 の...
-
アクセスのフォームに入力する...
-
DOSコマンドで日本語名のファイ...
-
りと小さいつの打ち方を教えて...
-
ワードの文書校正について
-
¥マークのキーにある横棒の出...
-
マウスのクリック、指離したの...
-
手術 という漢字。この漢字を、...
-
縦書き文章で『―』表示を『|』...
-
マウスのポインタが勝手に上下...
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
「丸印の中に三角のマークが上...
-
Excelで大量の2000個のリストを...
-
マウスでの範囲指定の動きがお...
-
ワークシートの行が途中から表...
-
Excel PHONETIC関数で振り仮名...
-
windows10でBluetoothが急に無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイフンを全角で入力
-
Excelの半角、全角の( )カッ...
-
縦書きのテキストボックスで数...
-
アクセスのフォームに入力する...
-
IMEで、テンキーから入力すると...
-
テンキーからの半角数字の”直接...
-
ファイルを保存する際に日本語...
-
エクセルでの文字入力がIMEでし...
-
InputBoxでの日本語オン、オフ...
-
IME直接入力モードでの・(半角)...
-
入力がひらがなから勝手に半角...
-
DOSコマンドで日本語名のファイ...
-
記号を打つと勝手に入力モード...
-
文字変換で「うぉ」を入力した...
-
エクセルの起動時の入力モード
-
半角英数と直接入力の文字の違...
-
Outlook Express で、IMEの入力...
-
エクセルで特定の列の入力モー...
-
メッセージ入力欄のみ「ひらが...
-
言語バーを常に日本語入力にし...
おすすめ情報