如何使用ADOX连接到现有的Access数据库

本文关键字:Access 数据库 何使用 ADOX 连接 | 更新日期: 2023-09-27 18:18:01

从一个快速谷歌我发现如何使用ADOX创建一个新的数据库,并添加一些表和行到它。下面是一个例子:

using ADOX;
...
ADOX.Catalog cat = new ADOX.Catalog();
cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mydb.accdb;");
Table mainTable = new Table();
mainTable.Name = "Test Table";
mainTable.Columns.Append("Column_1");
cat.Tables.Append(mainTable);

这创建了一个新的数据库,并与新创建的数据库一起工作,但是如果我有一个现有的数据库,我如何让ADOX.Catalog cat;连接到现有的数据库?

如何使用ADOX连接到现有的Access数据库

好了,我明白了。您必须将ActiveConenction属性设置为ADODB。来自msdn的连接对象如下所示:

Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
cnn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & _
    "Data Source= 'Northwind.mdb';"
Set cat.ActiveConnection = cnn
Debug.Print cat.Tables(0).Type
cnn.Close
Set cat = Nothing
Set cnn = Nothing

您可以使用cat.ActiveConnection设置现有数据库的连接字符串,如以下VBA代码所示:

Sub adoxTest()
Dim cat As New ADOX.Catalog, tbl As ADOX.Table
cat.ActiveConnection = _
        "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=C:'Users'Public'Database1.accdb;"
For Each tbl In cat.Tables
    Debug.Print tbl.Name
Next
Set tbl = Nothing
Set cat = Nothing
End Sub