ADODB 连接到两个访问数据库
ADODB Connection to two access database
由于 space 上的 ms 访问 2GB 限制;
我正在考虑将数据库一分为二。
但是我经常依赖 SQL 如下语句:
INSERT INTO [...] SELECT [...]
ADODB 中有没有办法执行上述操作,即文件 1 中的 INSERT INTO table,
来自文件 2 中 table 的 SELECT 数据 ?
不要将数据库设置为 CurrentDB,而是使用 OpenDatabase。
eg.
set DB = opendatabase("fkdslfjslj")
下面是使用 VBA 和 ADO 从一个 accdb 更新另一个 accdb 的示例:
Sub AddDataFromAccessToAccess()
Dim cn As Object
Dim sDatabase As String
Dim sDatabase2 As String
' change these paths
sDatabase = "C:\Database1.accdb"
sDatabase2 = "C:\Database2.accdb"
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source='" & sDatabase & "'"
.Open
' change table and field names here
.Execute "INSERT INTO Table1 ([Field1]) SELECT [Field2] FROM [MS Access;DATABASE=" & sDatabase2 & ";].[Table2]"
.Close
End With
End Sub
由于 space 上的 ms 访问 2GB 限制; 我正在考虑将数据库一分为二。
但是我经常依赖 SQL 如下语句:
INSERT INTO [...] SELECT [...]
ADODB 中有没有办法执行上述操作,即文件 1 中的 INSERT INTO table, 来自文件 2 中 table 的 SELECT 数据 ?
不要将数据库设置为 CurrentDB,而是使用 OpenDatabase。
eg.
set DB = opendatabase("fkdslfjslj")
下面是使用 VBA 和 ADO 从一个 accdb 更新另一个 accdb 的示例:
Sub AddDataFromAccessToAccess()
Dim cn As Object
Dim sDatabase As String
Dim sDatabase2 As String
' change these paths
sDatabase = "C:\Database1.accdb"
sDatabase2 = "C:\Database2.accdb"
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source='" & sDatabase & "'"
.Open
' change table and field names here
.Execute "INSERT INTO Table1 ([Field1]) SELECT [Field2] FROM [MS Access;DATABASE=" & sDatabase2 & ";].[Table2]"
.Close
End With
End Sub