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

时间:2013-06-11 08:45:53

标签: c# database ms-access-2007 adox

从快速谷歌我发现如何使用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;连接到现有数据库?

2 个答案:

答案 0 :(得分:3)

好的,我明白了。您必须将ActiveConnection属性设置为ADODB.connection对象,如以下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

答案 1 :(得分:2)

您可以使用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