VBA将许多变量连接成字符串

时间:2013-07-22 17:40:39

标签: string vba concatenation

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

这里有一些代码:

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

我不想复制整个代码,因为坦率地为27个变量做这件事可能会导致某人死亡。无论如何上面的代码我在SQL中重复了27个值(SQL表显然有27列)。但是在这样的21个连接之后,字符串不再连接。

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

非常感谢

3 个答案:

答案 0 :(得分:2)

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

sql = "Insert into....................."
sql = sql & "rest of the query"

答案 1 :(得分: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,",") & ");"

答案 2 :(得分:1)

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