pickup

目次

入力漏れのときにどうする?

こんにちは。伊川(@naonaoke)です。

今回はACCESSの入力フォームについて、入力漏れがあった場合、対象のフィールドへカーソルを合わせます。

入力漏れを防止します。

入力漏れはデータベースの最大の敵です。

また、正誤判定するための新しいコードも紹介します。

問題提起

解決策

データベースの入力漏れをカンタンに防ぐ方法

テーブルのデザインビューで入力漏れを設定するメリット



上の図のように設定変更することで、入力漏れは完全に防ぐことができます。

とってもカンタンです。

これがメリットです。

テーブルのデザインビューで入力漏れを設定するデメリット

フォームの入力規制をつかう


上の図のように、フォーム自体に、入力規制をつけることができます。

この方法が便利です。

ただし、全てのフィールドに設定をしなければなりません。

つまり、フィールドが100個あったら、100個分に設定をしなければなりません。

だから、オートルックアップクエリ等で、自動的に入力補助をしておくことが必要です。

http://keiyu.xyz/2019/09/18/access%e3%81%ae%e5%9f%ba%e6%9c%ac%e6%8a%80%e3%80%80%e3%82%aa%e3%83%bc%e3%83%88%e3%83%ab%e3%83%83%e3%82%af%e3%82%a2%e3%83%83%e3%83%97%e3%82%af%e3%82%a8%e3%83%aa%e3%81%af%e8%b6%85%e4%be%bf%e5%88%a9/


上の図のように、入力漏れがあると、エラーが表示されます。

入力漏れのフィールドにフォーカスさせる

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です。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事