ACCESS「テーブル・レポート・フォーム・クエリ・モジュール」のオブジェクト数を調べる方法

ACCESS「テーブル・レポート・フォーム・クエリ・モジュール」のオブジェクト数を調べる方法アイキャッチ

ACCESS「テーブル・レポート・フォーム・クエリ・モジュール」のオブジェクト数を調べる方法

目次

はじめに

データベース管理において、テーブル、クエリ、フォーム、レポート・標準モジュールとクラスモジュールなどのオブジェクトの正確な数を知りたいことがあります。システムの規模間などを知るうえではとても重要になります。

Microsoft Accessでこれらのオブジェクト数を簡単に把握する方法をご紹介します。この記事を読むことで、VBAスクリプトを使ってデータベースオブジェクトの数を自動で数える方法を紹介します。

ACCESSでテーブル・クエリ・フォーム・レポート・モジュールのオブジェクトの数を出力するプログラム

STEP
標準モジュールを作成
STEP
標準モジュールに以下のコードを貼り付ける
Sub CountDatabaseObjects()
    Dim db As Database
    Set db = CurrentDb()
    
    Dim tableCount As Integer
    Dim reportCount As Integer
    Dim formCount As Integer
    Dim queryCount As Integer
    Dim moduleCount As Integer ' モジュールの数
    
    tableCount = 0
    reportCount = 0
    formCount = 0
    queryCount = 0
    moduleCount = 0 ' 初期化
    
    ' テーブルの数をカウント
    Dim tbl As TableDef
    For Each tbl In db.TableDefs
        If Not tbl.Attributes And dbSystemObject Then
            tableCount = tableCount + 1
        End If
    Next tbl
    
    ' レポートの数をカウント
    Dim rpt As AccessObject
    For Each rpt In Application.CurrentProject.AllReports
        reportCount = reportCount + 1
    Next rpt
    
    ' フォームの数をカウント
    Dim frm As AccessObject
    For Each frm In Application.CurrentProject.AllForms
        formCount = formCount + 1
    Next frm
    
    ' クエリの数をカウント
    Dim qry As QueryDef
    For Each qry In db.QueryDefs
        If Left(qry.Name, 4) <> "MSys" Then
            queryCount = queryCount + 1
        End If
    Next qry
    
    ' モジュールの数をカウント
    Dim mdl As AccessObject
    For Each mdl In Application.CurrentProject.AllModules
        moduleCount = moduleCount + 1
    Next mdl
    
    ' 結果を表示
    MsgBox "テーブルの数: " & tableCount & vbCrLf & _
           "レポートの数: " & reportCount & vbCrLf & _
           "フォームの数: " & formCount & vbCrLf & _
           "クエリの数: " & queryCount & vbCrLf & _
           "モジュールの数: " & moduleCount, vbInformation, "オブジェクトのカウント"
End Sub


STEP
F5でプログラムを実行する

注意すべきポイント①テーブル数にはACCESSが使うシステムオブジェクトが含まれる

テーブルとクエリにはシステムオブジェクトしてACCESS自身が使うものがあります。12個が対象になります。

注意すべきポイント②クエリ数にはフォームと連携しているクエリも含まれる

クエリの数には、フォームやレポートなどに設定しているクエリの数も含まれます。

画像では、クエリは1つしかありませんが、実行結果は3と出力されています。

まとめ

今回は、ACCESSでテーブル・クエリ・フォーム・レポート・モジュールのオブジェクト数を知る方法として、プログラムを紹介しました。

単純に数=複雑さではありませんが、システムの規模を知る上では指標になりますので、ぜひ今回ご紹介したプログラムを使ってみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次