目次
入力漏れのときにどうする?
こんにちは。伊川(@naonaoke)です。
今回はACCESSの入力フォームについて、入力漏れがあった場合、対象のフィールドへカーソルを合わせます。
入力漏れを防止します。
入力漏れはデータベースの最大の敵です。
また、正誤判定するための新しいコードも紹介します。
問題提起
解決策
データベースの入力漏れをカンタンに防ぐ方法
テーブルのデザインビューで入力漏れを設定するメリット
上の図のように設定変更することで、入力漏れは完全に防ぐことができます。
とってもカンタンです。
これがメリットです。
テーブルのデザインビューで入力漏れを設定するデメリット
フォームの入力規制をつかう
上の図のように、フォーム自体に、入力規制をつけることができます。
この方法が便利です。
ただし、全てのフィールドに設定をしなければなりません。
つまり、フィールドが100個あったら、100個分に設定をしなければなりません。
だから、オートルックアップクエリ等で、自動的に入力補助をしておくことが必要です。
上の図のように、入力漏れがあると、エラーが表示されます。
入力漏れのフィールドにフォーカスさせる
Boolean型とは?
Boolean型とは、真偽値を保存するための変数の型です。
たとえば、「フィールドに文字が入力されていたらTrue、空白の場合はFalse」のように条件を指定した結果を保存するために使います。
条件の指定に使うととても便利なので、覚えておくのがおすすめです。
そして、Boolean型は、Fnctionプロシージャで使うのがお勧めです。
標準モジュールに、コードを書き込む
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Public Function Check(F_入力 As Form) As Boolean Dim ctl As Control Check = False With F_入力 For Each ctl In .Section(acDetail).Controls With ctl Select Case .ControlType Case acTextBox, acComboBox If Len(Trim(Nz(.ValidationText))) > 0 Then If Len(Trim(Nz(.Value))) = 0 Then MsgBox .ValidationText, vbExclamation + vbOKOnly .SetFocus Check = True Exit For End If End If End Select End With Next ctl End With End Function |
・Withステートメント
・Select Case
・IF構文の条件から抜ける
・For earch
いろいろな構文を使っています。
まだ、ブログでは、IF構文の条件から抜ける、For earchは説明していませんが、近日中に掲載します。
コードの読み方
フォームの更新前処理
Functionプロシージャを呼び出すためのコードを記載します。
1 2 3 |
Private Sub Form_BeforeUpdate(Cancel As Integer) Cancel = Check(Me) End Sub |
まとめ、
今回は、2019年11月5日の動画の内容をブログにしました。
このサイトで説明できていない点もありますが、随時更新していきます。
更新した際には、内部リンクをはります。
このBooleamとFunctionは難しいようですが、カンタンですので、ぜひ憶えてください。
サンプルファイルはNo32です。