3 テーブル系 - テーブル名とそのフィールド数を収集する

カレントデータベース内にあるテーブル名の一覧とともに、それぞれのテーブルを構成するフィールドの数を収集します。
  1. まず「Database」オブジェクトの変数である「dbs」に”カレントデータベース”をセットします。

  2. そのデータベース内にあるすべてのテーブルのコレクションである「TableDefs」の中から、For Each〜Nextステートメントでひとつずつテーブル情報を取り出し、「TableDef」オブジェクトの変数「tdf」にセットしていきます。

  3. TableDefsコレクションにはシステムテーブルや隠しテーブルも含まれているので、「Attributes」プロパティの値からテーブル属性を判断し、If文でそれらを除外します。

  4. 取り出されたテーブル情報のうち、テーブル名である「Name」プロパティの値をイミディエイトウィンドウに出力します。

  5. さらに、そのテーブル内のフィールドオブジェクトのコレクションである「Fields」「Count」プロパティ(=フィールド数)をイミディエイトウィンドウに出力します。

    ※このCountプロパティの値はFor〜Nextステートメントのカウンタの上限値として利用することもできます。たとえば「For i = 0 To .Fields.Count - 1」というループを形成し、その中で「.Fields(i).Name」とすることで、すべてのフィールド名を取り出すことができます。

Sub Sample_1_03()
'テーブル名とそのフィールド数を収集する

  Dim dbs As Database
  Dim tdf As TableDef

  Set dbs = CurrentDb
  For Each tdf In dbs.TableDefs
    With tdf
      If ((.Attributes And dbSystemObject) Or _
          (.Attributes And dbHiddenObject)) = 0 Then
        Debug.Print .Name,
        Debug.Print .Fields.Count
      End If
    End With
  Next tdf

End Sub

実行例:


| Index | Prev | Next |



Copyright © T'sWare All rights reserved