2

通过将许多变量连接到 SQL 字符串中,然后在 ADO 中执行该字符串,我在 VBA 中执行了一个相对混乱的 SQL 字符串。

作为一个例子,这里有一些代码:

Sql = "insert into mydb.dbo.table values ('" & var1 & "','" & var2 & "','" & double1 & "," & double2 & "," & double3 & ")"

我不想复制整个代码,因为坦率地说,对 27 个变量执行此操作可能会让某人感到厌烦至死。无论如何,我对 SQL 中的 27 个值重复上述代码(SQL 表显然有 27 列)。然而,在这样的 21 次连接之后,字符串不再连接。

总字符串字符长度为 208,所以它肯定不能是 VBA 最大值 252。是否有最大数量的连接值输入到 VBA 字符串?我可以使用其他方法来实现这个目标吗?

非常感谢

4

3 回答 3

2

VBA 中字符串的最大大小为 65536 个字符...取决于应用程序版本,但在一行中你不能写这么多字符。在 VBA 的情况下,单行最多可以有 1021 个字符。所以打破你的代码行。例如

sql = "Insert into....................."
sql = sql & "rest of the query"
于 2013-07-23T05:03:25.450 回答
1

我不确定您所说的“不再连接”是什么意思,但我通常将数组用于笨重的字符串。

Dim aSql(1 to 27) As String

aSql(1) = "'" & var1 & "'"
aSql(2) = "'" & var2 & "'"
aSql(3) = double1
aSql(4) = double2
...

adCmd.Execute "INSERT INTO mydb.dbo.table VALUES (" & Join(aSql,",") & ");"
于 2013-07-22T19:20:07.717 回答
1

我没有找到答案。我能够将 SQL 表重建为更好的设计,但问题仍然存在于将多个变量连接到一个字符串中。

于 2013-07-29T08:40:41.970 回答