目次
入力漏れのときにどうする?
こんにちは。伊川(@naonaoke)です。
今回はACCESSの入力フォームについて、入力漏れがあった場合、対象のフィールドへカーソルを合わせます。
入力漏れを防止します。
入力漏れはデータベースの最大の敵です。
また、正誤判定するための新しいコードも紹介します。
問題提起
解決策
データベースの入力漏れをカンタンに防ぐ方法
テーブルのデザインビューで入力漏れを設定するメリット
上の図のように設定変更することで、入力漏れは完全に防ぐことができます。
とってもカンタンです。
これがメリットです。
テーブルのデザインビューで入力漏れを設定するデメリット
フォームの入力規制をつかう
上の図のように、フォーム自体に、入力規制をつけることができます。
この方法が便利です。
ただし、全てのフィールドに設定をしなければなりません。
つまり、フィールドが100個あったら、100個分に設定をしなければなりません。
だから、オートルックアップクエリ等で、自動的に入力補助をしておくことが必要です。
上の図のように、入力漏れがあると、エラーが表示されます。
入力漏れのフィールドにフォーカスさせる
Boolean型とは?
Boolean型とは、真偽値を保存するための変数の型です。
たとえば、「フィールドに文字が入力されていたらTrue、空白の場合はFalse」のように条件を指定した結果を保存するために使います。
条件の指定に使うととても便利なので、覚えておくのがおすすめです。
そして、Boolean型は、Fnctionプロシージャで使うのがお勧めです。
標準モジュールに、コードを書き込む
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プロシージャを呼び出すためのコードを記載します。
Private Sub Form_BeforeUpdate(Cancel As Integer) Cancel = Check(Me) End Sub
まとめ、
今回は、2019年11月5日の動画の内容をブログにしました。
このサイトで説明できていない点もありますが、随時更新していきます。
更新した際には、内部リンクをはります。
このBooleamとFunctionは難しいようですが、カンタンですので、ぜひ憶えてください。
サンプルファイルはNo32です。