- ベストアンサー
ExcelVBAでAccessのテーブル・フィールド情報を列挙する方法
- ExcelVBAを使用して、Accessのテーブル・フィールド情報を列挙する方法について教えてください。
- 現在、ExcelVBAを使って、Accessのテーブル・フィールド情報を列挙するプログラムを作成していますが、最後の「主キー」と「インデックスの重複許可」の情報を得ることができません。
- Excel2000VBAからAccess2000[mdb]にデータを取り込み、最終的にExcelのシートにテーブル・フィールド情報を出力したいです。現在はDAO3.6を参照設定しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
インデックス情報はTableDef.Indexesを調べます。 Public Function テーブル_フィールド情報取得関数() As Boolean Dim DB As DAO.Database Dim Fld As DAO.Field Dim Tdf As DAO.TableDef Dim Ind As DAO.Index 'DBオブジェクトを作成 Set DB = DBEngine.Workspaces(0).OpenDatabase("c:\temp\test.mdb") 'テーブルの数だけ処理をループ For Each Tdf In DB.TableDefs 'システムテーブルは処理しない If Tdf.Attributes > 0 Then 'フィールドの数だけ処理をループ For Each Fld In Tdf.Fields '「フィールド名」取得 Debug.Print Fld.Name '「フィールド型」取得 Debug.Print Fld.Type '「フィールドサイズ」取得 Debug.Print Fld.Size Next Fld 'インデックスの処理 For Each Ind In Tdf.Indexes 'インデックス名 Debug.Print Ind.Name '主キーか? Debug.Print Ind.Primary '重複不可? Debug.Print Ind.Unique 'インデックス内のフィールド名 For Each Fld In Ind.Fields Debug.Print Fld.Name Next Fld Next Ind End If Next Tdf End Function こんな感じでどうでしょう?
お礼
venzoさん!お返事ありがとうございました(><)!! なるほど! Feildの情報なので、Feildオブジェクトのプロパティばかり意識してましたが、TableDefオブジェクトなのですね(><)!! ほんっとに助かりました。勉強になりました! ありがとうございました!