似乎只能使用传递查询从SQL Server表和MS Access中检索数据。但另一种方式呢?从Access表到SQL Server表。
当我需要高性能时,我在MS Access中有哪些选择?
(将附加查询附加到链接表的常规方法只是太慢)
在传递查询中,我无法引用MS Access表或查询,因此我的INSERT INTO语句无法工作。通过VBA有解决方法吗?
答案 0 :(得分: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
我怀疑它会更快。
答案 1 :(得分:0)
在Access中可以使用宏来动态创建使用SetValue的传递查询定义(我认为现在称为SetProperty)。基本上,您可以更新现有传递查询的查询定义,然后运行它。我这样做了一次,而且速度要快得多,但那是很久以前的事了。我可能有一段VB循环通过表来创建查询。