似乎只能使用传递查询从 SQL Server 表中检索数据并进入 MS Access。但是另一种方式呢?从 Access 表到 SQL Server 表。
当我需要高性能时,我在 MS Access 中有哪些选择?
(将附加查询附加到链接表的正常方法太慢了)
在传递查询中,我无法引用 MS Access 表或查询,因此我的 INSERT INTO 语句无法工作。是否可以通过 VBA 解决?
似乎只能使用传递查询从 SQL Server 表中检索数据并进入 MS Access。但是另一种方式呢?从 Access 表到 SQL Server 表。
当我需要高性能时,我在 MS Access 中有哪些选择?
(将附加查询附加到链接表的正常方法太慢了)
在传递查询中,我无法引用 MS Access 表或查询,因此我的 INSERT INTO 语句无法工作。是否可以通过 VBA 解决?
您可以在直通查询中使用 OPENROWSET。
SELECT id,
atext
INTO anewtable
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'z:\docs\test.accdb'; 'admin';'',table1);
您可能需要以下部分或全部选项:
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',
N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',
N'DynamicParameters', 1
GO
我怀疑它会更快。
在 Access 中可以使用宏来使用 SetValue 动态创建传递查询定义(我认为这现在称为 SetProperty)。基本上,您可以更新现有直通查询的查询定义,然后运行它。我这样做过一次,速度要快得多,但那是很久以前的事了。我可能有一段 VB 循环通过一个表来创建查询。