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

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

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

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。

SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。

お気軽にお問い合わせください。

目次

はじめに

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

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でテーブル・クエリ・フォーム・レポート・モジュールのオブジェクト数を知る方法として、プログラムを紹介しました。

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

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次