| テーブル・フィールドリストの取得方法(DAO) |
■カレントデータベースに含まれるテーブル一覧の取得
次のプロシジャはカレントデータベース内のテーブルリストをイミディエイトウインドウに表示します。ただし、システムテーブルは表示しません。
Sub テーブル名の取得()
Dim DB As DAO.Database
Dim TableLoop As TableDef
Dim strTname As String
Set DB = CurrentDb
For Each TableLoop In DB.TableDefs
strTname = TableLoop.Name
If Left(strTname, 2) <> "MS" Then
Debug.Print strTname
End If
Next TableLoop
End Sub
■カレントデータベースに含まれるテーブルおよびフィールド一覧の取得
次のプロシジャはカレントデータベース内のテーブルリストおよびフィールドの一覧をイミディエイトウインドウに表示します。ただし、システムテーブルは表示しません。
Sub フィールド名の取得()
Dim DB As DAO.Database
Dim Tableloop As DAO.TableDef
Dim Fld As DAO.Field
Dim strTablename As String
Dim Tdf As DAO.TableDef
Set DB = CurrentDb
For Each Tableloop In DB.TableDefs
strTablename = Tableloop.Name
If Left(strTablename, 2) <> "MS" Then
Set Tdf = DB.TableDefs(strTablename)
Debug.Print "テーブル名: " & strTablename
For Each Fld In Tdf.Fields
Debug.Print Fld.Name, 'フィールド名
Debug.Print Fld.Type, 'データ型
Debug.Print Fld.Size ’サイズ
Next Fld
End If
Next Tableloop
DB.Close
Set DB = Nothing
End Sub
■外部データベースに含まれるテーブルおよびフィールド一覧の取得
次のプロシジャは外部データベース内のテーブルリストおよびフィールドの一覧をイミディエイトウインドウに表示します。ただし、システムテーブルは表示しません。
Sub フィールド名の取得2()
Dim DB As DAO.Database
Dim Tableloop As DAO.TableDef
Dim Fld As DAO.Field
Dim strTablename As String
Dim Tdf As DAO.TableDef
Set DB = DBEngine.Workspaces(0).OpenDatabase("D:\本科生管理2003.mdb")
For Each Tableloop In DB.TableDefs
strTablename = Tableloop.Name
If Left(strTablename, 2) <> "MS" Then
Set Tdf = DB.TableDefs(strTablename)
Debug.Print "テーブル名: " & strTablename
For Each Fld In Tdf.Fields
Debug.Print Fld.Name,
Debug.Print Fld.Type,
Debug.Print Fld.Size
Next Fld
End If
Next Tableloop
DB.Close
Set DB = Nothing
End Sub