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.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント