AmeriFood(i), SpanFood(i), IndiFood(i)
的值在导出到Access表时不会更新。相反,它在整个循环中每次都连续输入值的第一个实例。
InsertIntoString = "INSERT INTO [Data] ([American], [Spanish], [Indian]) "
''''ValuesString = "VALUES ([" & AmerFood(i) & "], [" & SpanFood(i) & "], [" & IndiFood(i) & "])" ' I couldnt get this to work beauce there are spaces in the string.
ValuesString = "VALUES (?,?,?)"
strSql = InsertIntoString & ValuesString
With cmd
Set .ActiveConnection = cn
.CommandText = strSql
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , AmerFood(i))
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , SpanFood(i))
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , IndiFood(i))
.Execute
End With
知道每次在VBA代码中循环时如何更新值AmeriFood(i), SpanFood(i), IndiFood(i)
?我已经逐步完成了代码,每个值都会使用正确的文本/值进行更新,但它永远不会导出为更新后的值,只是它给出的第一个值。
我原本打算使用注释掉的行
ValuesString = "VALUES ([" & AmerFood(i) & "], [" & SpanFood(i) & "], [" & IndiFood(i) & "])"
但它错误了,因为变量字符串中有空格。
对我来说,这样做并没有什么不同,我只需要一些工作。
先谢谢
答案 0 :(得分:0)
您需要共享完整的代码,但据我所知,您重复向同一命令添加参数。
为每次迭代使用新命令:
Set cmd = New ADODB.Command
With cmd
Set .ActiveConnection = cn
.CommandText = strSql
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , AmerFood(i))
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , SpanFood(i))
.Parameters.Append .CreateParameter(, adVariant, adParamInput, , IndiFood(i))
.Execute
End With
请注意adVariant
不受支持,请参阅docs