如何在Ms Access中运行数千个查询?

时间:2017-07-05 18:44:56

标签: sql ms-access

我发现Ms Access中的SQL VIEW执行了一些查询,但是我需要在.sql文件中执行大约20.000个UPDATE查询。

当我在SQL VIEW中粘贴时,它说"文本太长而无法修改"。

如何运行这些UPDATE?

2 个答案:

答案 0 :(得分:1)

Access SQL查询中字符数的限制是"大约64000" - 见https://support.office.com/en-us/article/Access-2010-specifications-HA010341462.aspx。不幸的是,您无法在查询中执行多个语句。我认为这对VBA来说意味着相当多的工作。这是一个示例方法(伪代码): -

open file
read line into variable
while not EOF
currentdb.execute variable, dbfailonerror
read next line
wend
close file

如果您习惯使用其他RDBMS执行大量语句,可能会给您带来惊喜!

另一种建议:我们不确切地知道您的文件是什么样的或它来自何处,但如果它是从您可以访问的另一个RDBMS生成的,那么我强烈建议您设置与它建立ODBC连接,并查询所需的数据(通过链接表或编写传递查询),然后插入本地Access表。这将比执行数千个单独的语句快许多个数量级。

如果您的唯一数据源是SQL语句,那么如果您可以将SQL文本解析为相关列(例如PK,要更新的值,或者插入,那么所有列值),您可能仍然会更好),然后保存为csv文件,导入到Access,根据需要添加密钥,然后运行单个更新语句作为针对导入的数据和现有表的可更新查询。将文件转储到Excel并使用各种字符串函数可以使您快速解析数据。

答案 1 :(得分:-1)

可能有一种更简单的方法,但您可以编写逐行读取文本文件的VBA代码,然后使用DoCmd.RunSQL运行每个查询。