
アクセスのほぼ初心者です。(若干のクエリ作成と、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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
ACCESSの入力文字数の制限について
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
Accessのテキストボックスの入力文字制限
Access(アクセス)
-
5
入力できる文字数を制限する方法
Access(アクセス)
-
6
【ACCESS】入力規則(Len関数)の桁数の複数指定
Access(アクセス)
-
7
ACCESS 入力文字数制限
Access(アクセス)
-
8
新規レコード行を非表示にしたい
Access(アクセス)
-
9
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
10
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
11
Accessでフォーム上に 直前の データを表示させるには
Access(アクセス)
-
12
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
13
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
14
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
15
Accessの桁区切りについて教えてください。
Access(アクセス)
-
16
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
17
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
18
Accessでデータを更新したらその日付を自動入力したい
Access(アクセス)
-
19
Accessでテーブル名やクエリ名一覧の抜き出し
Access(アクセス)
-
20
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
縦書きのテキストボックスで数...
-
ハイフンを全角で入力
-
ファイルを保存する際に日本語...
-
アクセスのフォームに入力する...
-
エクセルでの文字入力がIMEでし...
-
Excelの半角、全角の( )カッ...
-
縦書き文章で『―』表示を『|』...
-
エクセルの下部のシートタブの...
-
エクセルで別シートの同じ位置...
-
マウスのポインタが勝手に上下...
-
ワークシートの行が途中から表...
-
メールアドレスの下線の入力方法
-
マウスのクリック、指離したの...
-
インサートキーみたいのを勝手...
-
シート全体を他のブックのシー...
-
「丸印の中に三角のマークが上...
-
【マクロ】【画像あり】4つの...
-
2画面にするとマウスポインタ...
-
Excel PHONETIC関数で振り仮名...
-
ワードで6重の円を描きたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
縦書きのテキストボックスで数...
-
ハイフンを全角で入力
-
半角英数入力で→を入力する方法
-
Excelの半角、全角の( )カッ...
-
アクセスのフォームに入力する...
-
エクセルでの文字入力がIMEでし...
-
記号を打つと勝手に入力モード...
-
テンキーからの半角数字の”直接...
-
ファイルを保存する際に日本語...
-
IMEで、テンキーから入力すると...
-
IME直接入力モードでの・(半角)...
-
キーボードの入力時 「が[にな...
-
文字変換で「うぉ」を入力した...
-
こんにちは エクセルにて、会社...
-
文字入力が左上に表示され困っ...
-
EXCELで日本語入力ができなくな...
-
ワードの文字入力
-
エクセルの起動時の入力モード
-
σ(シグマ)の字体が途中から変...
-
文字入力なぜ最初半角になって...
おすすめ情報