テーブル名、クエリ名の取得(ADOX)
テーブル名の取得
Table.Type プロパティ
【書式】
<取得>
object.Type
引数・戻り値
- object ・・・ 対象となる Table オブジェクトを指定します。
- 戻り値 ・・・ テーブルの種類を表す文字列型(String)の値を返します。
戻り値 テーブルの種類 TABLE 通常のテーブル VIEW パラメータなしの選択クエリ LINK リンクテーブル(ODBC以外) ACCESS TABLE Access システムテーブル SYSTEM TABLE Microsoft jet システムテーブル PASS-THROUGH リンクテーブル(ODBC)
Catalog.Views コレクション
【書式】
object.Views
引数・戻り値
- object ・・・ 対象となる Catalog オブジェクトを指定します。
Views コレクションでは、パラメータを含まない選択クエリを管理しています。
Catalog.Procedures コレクション
【書式】
object.Columns
object.Procedures
引数・戻り値
- object ・・・ 対象となる Catalog オブジェクトを指定します。
Procedures コレクションでは、アクションクエリやパラメータを含む選択クエリを管理しています。
ADOX で、テーブル名・クエリ名を取得する例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
Sub Sample_ADOX_tablequery() '参照設定:Microsoft ActiveX Data Objects 6.1 Library '参照設定:Microsoft ADO Ext.6.0 for DDL and Security Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Dim qry1 As ADOX.View Dim qry2 As ADOX.Procedure Dim constr As String Dim DBFile As String Dim strTbl(1 To 6) As String Dim strQry(1 To 2) As String Dim msg1 As String Dim msg2 As Variant On Error GoTo ErrHandler 'データベースのパスと名前 'Access 2007以降(accdb ファイル) DBFile = ActiveWorkbook.Path & "\mydb3.accdb" constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile 'Access 2003以前(mdb ファイル) 'DBFile = ActiveWorkbook.Path & "\mydb2.mdb" 'ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFile Set cat = New ADOX.Catalog cat.ActiveConnection = constr 'テーブル For Each tbl In cat.Tables Select Case tbl.Type Case "TABLE" If strTbl(1) = "" Then strTbl(1) = "【テーブル】" strTbl(1) = strTbl(1) & vbCrLf & " " & tbl.Name Case "VIEW" If strTbl(2) = "" Then strTbl(2) = "【選択クエリ(パラメータなし)】" strTbl(2) = strTbl(2) & vbCrLf & " " & tbl.Name Case "LINK" If strTbl(3) = "" Then strTbl(3) = "【リンクテーブル(ODBC以外)】" strTbl(3) = strTbl(3) & vbCrLf & " " & tbl.Name Case "ACCESS TABLE" If strTbl(4) = "" Then strTbl(4) = "【Access システムテーブル】" strTbl(4) = strTbl(4) & vbCrLf & " " & tbl.Name Case "SYSTEM TABLE" If strTbl(5) = "" Then strTbl(5) = "【Microsoft jet システムテーブル】" strTbl(5) = strTbl(5) & vbCrLf & " " & tbl.Name Case "PASS-THROUGH" If strTbl(6) = "" Then strTbl(6) = "【リンクテーブル(ODBC)】" strTbl(6) = strTbl(6) & vbCrLf & " " & tbl.Name End Select Next tbl 'クエリ strQry(1) = "【選択クエリ(パラメータなし)】" For Each qry1 In cat.Views strQry(1) = strQry(1) & vbCrLf & " " & qry1.Name Next strQry(2) = "【アクションクエリ&パラメータ付選択クエリ】" For Each qry2 In cat.Procedures strQry(2) = strQry(2) & vbCrLf & " " & qry2.Name Next msg1 = Join(strTbl, vbCrLf) msg2 = Join(strQry, vbCrLf) MsgBox msg1 & vbCrLf & msg2 ErrHandler: If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description End If Set cat = Nothing Set tbl = Nothing Set qry1 = Nothing Set qry2 = Nothing End Sub |
実行結果
関連記事
-
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …
-
-
テーブルの作成・削除/フィールドの作成・削除(ADOX)
ADOX を使用してテーブル・フィールド(列)を作成・削除 Table オブジェ …
-
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
-
データベースを作成する(ADOX)
ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …
-
-
データベース(Oracle)に接続する(OLE DB を使用)
OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …
-
-
データベース(Oracle)に接続する(ODBC を使用)
ODBC接続(ADO) ADOで、ODBC(Open Database Conn …
-
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …
-
-
レコードを指定した条件で抽出する(ADO)Filter プロパティ
データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …
-
-
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド
クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …
- PREV
- クエリの作成・削除(ADOX)
- NEXT
- 連想配列(Dictionary オブジェクト)