タイトル : Re^3: MS-ACCESSのクエリ名やリンクテーブル名の取得は? 投稿日 : 2007/11/14(Wed) 14:54 投稿者 : タツ
> ADODB.Connection の OpenSchema メソッドを使う事もできますね。 下記のようにするのですね。 ※下記リンクをほぼそのまま使用しましたが・・。 http://www.microsoft.com/japan/msdn/columns/office/office10052000.aspx Dim strPath As String strPath = "D:\test.mdb" Dim cn As New ADODB.Connection Dim rstList As ADODB.Recordset cn = New ADODB.Connection With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .Open(strPath) End With rstList = cn.OpenSchema(ADODB.SchemaEnum.adSchemaTables) With Me.ListBox1 Do While Not rstList.EOF If Not (rstList.Fields("TABLE_TYPE") Is "VIEW") Then .Items.Add(rstList.Fields("TABLE_NAME")) End If rstList.MoveNext() Loop End With cn.Close() cn = Nothing > Propeties コレクションを列挙してみてください。 Propertiesコレクション・・については、よく分からないままなので、 さらに調べてみます。 ひとまず、ADODBとADOXを使用したものの内、 下記部分に追加を行うことで(タイプの指定を追記した)、 リンクテーブルの名前も取得出来ました。 > For Each tbl In cat.Tables > If tbl.Type = "TABLE" Then > .Items.Add(tbl.Name) > End If > Next For Each tbl In cat.Tables If tbl.Type = "TABLE" Then .Items.Add(tbl.Name) ElseIf tbl.Type = "LINK" Then .Items.Add(tbl.Name) ElseIf tbl.Type = "PASS-THROUGH" Then .Items.Add(tbl.Name) End If Next > # 相手が mdb なら、DAO の方が細かい情報が得られるかな…。 DAOの方がMS-ACCESSに特化してるのですね。 DAOでの取得方法も調べておきたいと思います。 ありがとうございました。 |