tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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での取得方法も調べておきたいと思います。

ありがとうございました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。