VBAを利用したテーブル名とフィールド名一覧取得
_
Cn.Open StrCnSQL
Cat.ActiveConnection = Cn
For Each c In Cat.Tables
'/**システムを除くため2013年以後作成テーブルに**/
'/**Attribute条件不可?**/
If Year(c.DateCreated) >= 2013 Then
'/**データベース上の全テーブル名称取得**/
'/**Where 1 = 2 でテーブル構造のみ取得**/
Str = c.Name
SQL = "Select * From " & c.Name & " Where 1 = 2;"
Rs.Open SQL, Cn, adOpenForwardOnly, adLockReadOnly
'/**各テーブルのフィールド取得**/
'/**配列の中身 = テーブル名 + スペース + フィールド名
For i = 0 To Rs.Fields.Count - 1
ReDim Preserve Ar(ArCnt)
Ar(ArCnt) = Str & Space(4) & Rs(i).Name
ArCnt = ArCnt + 1
Next i
Rs.Close
End If
Next c
◆現在上記コードでVBAからSQL Serverへ接続し、データベース
上の全テーブル名と各テーブルのフィールド名を取得しています。
1. ADOで接続
↓
2. ADOX.Catalogを使用してFor Each から全テーブル名取得
↓
3. テーブル中身をレコードセットに格納してフィールド名取得
◆質問
上記手順2では、不要なシステムファイルを除くためにテーブル
作成日が2013年以後の条件(c.DateCreated >= 2013)とし
ていますが、一般的にはどのような条件にするのでしょうか?
Attributeは不可でした。(理由はわかりません orz)なお、
テーブル以外にビューまで取得されます。
現在VBAとSQLを学習中です。
アドバイスよろしくお願い致します。。