Access2000では新しいオブジェクトとしてAccessObjectが追加されました。
このオブジェクトを使用して、テーブルやフォームなどカレントMDBに存在す
るオブジェクトを列挙する方法を説明します。
● 準備 ●
標準モジュールに以下のプロシージャを記述して下さい。
● サンプル ●
Private Sub AccessObjectTest()
Dim obj As AccessObject
'DataAccessPageを列挙
For Each obj In CurrentProject.AllDataAccessPages
Debug.Print obj.Name
Next
'フォームを列挙
For Each obj In CurrentProject.AllForms
Debug.Print obj.Name
Next
'マクロを列挙
For Each obj In CurrentProject.AllMacros
Debug.Print obj.Name
Next
'モジュールを列挙
For Each obj In CurrentProject.AllModules
Debug.Print obj.Name
Next
'レポートを列挙
For Each obj In CurrentProject.AllReports
Debug.Print obj.Name
Next
'テーブルの列挙
For Each obj In CurrentData.AllTables
Debug.Print obj.Name
Next
'クエリの列挙
For Each obj In CurrentData.AllQueries
Debug.Print obj.Name
Next
End Sub
● 動作確認 ●
上記AccessObjectTestプロシージャを実行して下さい。その際にイミディエ
イトウィンドウにカレントMDBのオブジェクトが全て列挙されていることを確認
して下さい。
● 詳細 ●
Access2000ではMDBに保存された各オブジェクトへのアクセスの為に、最上位
オブジェクトであるApplicationオブジェクトの直下にCurrentProject、CuurentData
というAccessオブジェクトが用意されました。
CurrentProjectは、ほぼAccess97のCurrentDbと同じように捉えられるオブジェ
クトで、カレントMDBにあるAccess独自のオブジェクトを全て保持しています。
CurrentDataは、テーブルやクエリなど、データ定義に関するオブジェクトを
保持しているものです。
サンプルではそれぞれのコレクションをFor Each...Next構文でループ処理し
て、保存済みのオブジェクトを全て列挙しています。
また、AccessObjectは保存済みのオブジェクトにを参照する機能のみを提供し、
コレクションから特定のオブジェクトを削除・追加したり、対応するオブジェクト
のデータに直接アクセスすることは出来ませんので、注意してください。
|