#741 フォームのレコードが空かどうかを返すサンプルプロシージャ フォーム、VBA

フォームのイベントプロシージャにおいてフォームあるいはサブフォーム内のレコードの値を参照する際、その対象であるレコードの数がゼロであるとエラーとなってしまうことがあります。そのようなとき、事前にレコード数をチェックし”ゼロ(空)なら何もしない”という条件分岐を行うことがあります。

例:frm商品マスタ_subサブフォームのレコード数をチェック

If Me!frm商品マスタ_sub.Form.Recordset.RecordCount = 0 Then
  '空なら何もしない
  Exit Sub
End If
MsgBox "ここでレコード処理を実行!"

”レコードがない(空である)とき”という条件を「Me!frm商品マスタ_sub.Form.Recordset.RecordCount = 0」と記述することでもまったく問題ないのですが、比較的使う場面が多いのと、「.Recordset.RecourdCout」の部分は自動クイックヒント(”.”とキーインするとメンバーがリスト表示される機能)も効かず、コードの入力文字数も多くなってしまうので、プロシージャ化してみました。

サンプルプロシージャ:

Function IsEmptyRecord(frm As Form) As Boolean
'引数のフォームのレコードが空ならTrueを返す

  IsEmptyRecord = (frm.Recordset.RecordCount = 0)

End Function

使用例:

Private Sub cmd処理_Click()

  If IsEmptyRecord(Me!frm商品マスタ_sub.Form) Then
    MsgBox "空なので何もしない!"
    Exit Sub
  End If

  MsgBox "レコードがあるので処理を実行!"

End Sub

実行例:
  • レコードがあるとき


  • レコードがないとき
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved