1

似乎只能使用传递查询从 SQL Server 表中检索数据并进入 MS Access。但是另一种方式呢?从 Access 表到 SQL Server 表。

当我需要高性能时,我在 MS Access 中有哪些选择?
(将附加查询附加到链接表的正常方法太慢了

在传递查询中,我无法引用 MS Access 表或查询,因此我的 INSERT INTO 语句无法工作。是否可以通过 VBA 解决?

4

2 回答 2

0

您可以在直通查询中使用 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

我怀疑它会更快。

于 2012-10-20T17:12:31.390 回答
0

在 Access 中可以使用宏来使用 SetValue 动态创建传递查询定义(我认为这现在称为 SetProperty)。基本上,您可以更新现有直通查询的查询定义,然后运行它。我这样做过一次,速度要快得多,但那是很久以前的事了。我可能有一段 VB 循环通过一个表来创建查询。

于 2016-03-31T14:11:32.037 回答