AccessでVBAを使うにあたって、すごーく毎回役に立っているのが、If~Thenの条件分岐If文です。
この構文の使い方は簡単なので覚えていて損はないと思います。
私はこのIF文の応用でほとんどの見積書の作成コードを書いたといってもうそではないかもしれません(笑)
IF文で空欄を判定したり、フォームが開いているのか判定たり、特定のフォームが開いている時はこういうイベントを発生させるなど、いろいろと使えます。
考え方は下のようになります。
If 条件式 Then
真:条件を満たしている(true)
else
偽:条件を満たしていない(false)
end if
なんだかわかりませんって?!
IF 条件式(こうなったとき) Then
こうなったときが正しい(true)
こうする
else(正しくないとき)
正しくないとき(false)
こうする
end if
となります。もっとわかんない??(笑)
では実際に見積書で使っているコードをご紹介します。
最初に『得意先名』を記入してEnterを押すと次に『得意先担当名』にカーソルが移動するのですが、『得意先名』はコードで管理しているので、空欄にしないようにします。
『得意先名』が空欄かどうかを判定して先に進む(『得意先担当者名』)か戻って『得意先名』を記入させるかチェックします。
コードは下のように書きます。
Private Sub 得意先担当名_Enter()
If IsNull(Me![得意先名]) Then
MsgBox "得意先名を記入してください", vbYes
Me!得意先名.SetFocus
Else
Me!得意先担当名.SetFocus
End If
End Sub
イベントを発生させるときは、『得意先担当名』にカーソルが来たときなので、『得意先担当名』でコードを書いてください。
赤く囲っている『フォーカス取得時』というところでイベントを発生させます。
では、実際に『得意先名』を空欄でEnterを押して見ましょう!
『得意先名を記入してください』とメッセージが出ます。
『OK』を押すと、セットフォーカスで『得意先名』にカーソルが戻ります。
ちなみに『得意先名』が記入されている場合は特になに発生せずに『得意先担当名』にフォーカスが移動します。
こんな感じで使っています。
よく使うIF文、本当に覚えていて損はないと思います。
IF文で思い通りにAccessのVBAで動かすことができる第一歩になります。
IF文を使って、楽しくAccessでお仕事をしましょう!!