Accessファイルに接続して、テーブル名・クエリ名一覧を取得する方法です。
なお、この方法で取得できるのは、Access2003までの「.mdb」という形式になります。
|
|
|
左の画面のような状況で利用することを前提にサンプルコードを書きます。
ボタンは「btnTest」、コンボボックスは「cmbTest」とします。
|
|
'btnTestのクリックイベントです。
Private Sub btnTest_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnTest.Click
'接続用変数の定義(ADOXを参照していることが前提)
Dim ADOXDBCon As New ADOX.Catalog
'テーブル取得時の繰り返し用定義
Dim i As Integer
'Accessと接続するための構文を書きます。
ADOXDBCon.let_ActiveConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\temp\test.mdb;")
'テーブルが無い場合は、処理を中止します。
If ADOXDBCon.Tables.Count = 0 Then Exit Sub
'テーブル名の数だけ、コンボボックスに追加します。
'ただし、「msys」で始まるテーブルは、Accessのシステム上
'設定されているテーブルなので、対象外としています。
For i = 0 To ADOXDBCon.Tables.Count - 1
If ADOXDBCon.Tables(i).Name.Length > 4 Then
If ADOXDBCon.Tables(i).Name.Substring(0, 4).ToLower _
<> "msys" Then
Me.cmbTest.Items.Add(ADOXDBCon.Tables(i).Name)
End If
Else
Me.cmbTest.Items.Add(ADOXDBCon.Tables(i).Name)
End If
Next
End Sub
|
|
|
|
これを実行しますと、左の画面のように、Accessファイル内のテーブルとクエリの一覧が表示されます。
|