【发布时间】:2019-10-16 21:31:47
【问题描述】:
根据this question 的答案,我使用以下代码执行存储在 .txt 文件中的不同查询:
Dim vSql As Variant
Dim vSqls As Variant
Dim strSql As String
Dim intF As Integer
intF = FreeFile()
Open "MyFile.txt" For Input As #intF
strSql = Input(LOF(intF), #intF)
Close intF
vSql = Split(strSql, ";")
On Error Resume Next
For Each vSqls In vSql
DoCmd.RunSQL vSqls
Next
查询由;分隔,每个查询前面都有一个注释行,以'开头并以;结尾(因此它被vSql = Split(strSql, ";")分隔)。
生成的vSql 变体由有效的SQL 语句组成,散布着以' 开头的注释行。当前代码有效,但我想删除 On Error Resume Next 以便错误的 SQL 语句返回错误而不是被忽略。
如何在执行For Each 循环之前删除变量中以' 开头的行?还是有其他方法可以实现我的目标?如有必要,可以更改注释字符。
【问题讨论】:
-
在你的文本文件中,你可以用SQL注释字符“--”替换注释字符吗?
-
好主意,但我不确定 Access 是否处理 SQL cmets。我会看看它是否有效。
-
@JK2017 你的提议有效,Accss 似乎可以处理
--cmets。