【Access VBA】テーブル内のレコード数を取得する

テーブル内のレコード数を取得する

この記事では「テーブル内のレコード数を取得する」ために利用可能な GetNumberOfRecords というユーザー定義関数について紹介します。 この情報が読者のお役に立てば幸いです。

解決できること

Microsoft Access の中でここで紹介する GetNumberOfRecords  をマクロの中で呼び出すと パラメータで指定された テーブル 内の レコード数 を簡単に取得できます。

読んでほしい方

こうした Microsoft Access VBA を使ったアプリケーションをこれから作ろうと思っている方。

GetNumberOfRecords  関数 の紹介

説明

Access 内のマクロの中で、特定テーブルのレコード数の有無によってその後の処理の実行を制御したいケースがよくあります。この GetNumberOfRecords  関数は戻り値としてパラメータで指定されたテーブルに含まれるレコード数を取得できるので、Access マクロの If アクションと組合わせて処理を制御することができます。

 

参照オブジェクト

この関数を利用するためにはこの関数の実行前に データベースツール > Visual Basic > ツール > 参照設定 の中で

  • Microsoft Office 16.0 Access Database engine
  • Microsoft ActiveX Data Objects 6.1 Library

にチェックを入れる必要があります。

利用例

Access の マクロ 定義例えば “M0030_Call_GetNumberOfRecords” の中で以下のように

すなわち

If GetNumberOfRecords("tableName")>0 Then
  メッセージボックス ("FileNameList" にはレコードが含まれています,はい,なし)
If 文の最後

のように GetNumberOfRecordsを “tableName” というパラメータを付けて呼び出します。 ここに  “tableName” はレコード数の有無を確認したいテーブルの名前です。


この “M0030_Call_GetNumberOfRecords” の中でデザインビューを閉じて この ”M0030_Call_GetNumberOfRecords”  マクロをダブルクリックしてこのマクロを実行するとこの中で  GetNumberOfRecordsが実行され指定されたテーブル内に含まれるレコード数を戻します。

 

引数

属性 意味
テーブル名 文字型 レコード数を確認したいテーブルの名前を””で囲んだ文字列で関数のパラメータとして指定します。

戻り値

値 意味
n 入力パラメータで指定したテーブル内に含まれるレコード数

VBAコード


Function GetNumberOfRecords(table_name As String) As Integer
    GetNumberOfRecords = DCount("*", table_name)
End Function

VBAコードの簡単な説明

行番号 説明
1 関数名と関数の戻り値の型(Integer:整数型)、入力パラメータの名前、型(String:文字列型)を定義しています。
2 この関数の戻り値として 組み込み関数 DCount を使いレコード数を設定します。
(注1) ADO (ActiveX Data Objects) : DAOの後継としてMicrosoftが仕様策定した統一的方法でデータベースを操作、参照するためのソフトウェア部品のパッケージおよびその呼び出し規約(API)。ActiveXコントロールとして様々なソフトウェアやプログラミング言語から共通の方法で簡単にデータベースにアクセスでき、また表計算ソフトのワークシートやCSVファイルなどを含む様々な形式のデータに同じ手順でアクセスすることができる。

まとめ

この記事では「テーブル内のレコード数を取得する」ために利用可能な GetNumberOfRecords というユーザー定義関数について紹介しました。 この情報が読者のお役に立てば幸いです。