2

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

4

2 回答 2

3

好的,我想通了。您必须将 ActiveConenction 属性设置为 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
于 2013-06-11T15:02:25.843 回答
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
于 2013-06-11T14:11:58.193 回答