【发布时间】:2018-08-22 03:23:27
【问题描述】:
我有同一行重复很多次,只是做了一些小改动。我喜欢通过使用对象数组来缩短它
例如,代替这段代码:
StartUpdateStr = "Update tblAfterSale SET "
EndUpdateStr = " WHERE IDAfterSale = "
IDAfterSale = Me.lblIDAfterSale.Caption
db.Execute StartUpdateStr & "Data1 = " & Me.Lable1.Caption & EndUpdateStr & IDAfterSale
db.Execute StartUpdateStr & "Data2 = " & Me.Lable2.Caption & EndUpdateStr & IDAfterSale
db.Execute StartUpdateStr & "Data3 = " & Me.Lable3.Caption & EndUpdateStr & IDAfterSale
db.Close
我正在寻找这样的东西:
Const dCaption = "Me.Lable1.Caption,Me.Lable2.Caption,Me.Lable3.Caption"
Public d(2) As Integer
Public Sub MyMacro()
Dim vntTemp As Variant
Dim intIndex As Integer
vntTemp = Split(lCaption, "d")
For intIndex = 0 To 2
db.Execute StartUpdateStr & "Data"& intIndex & " = " & d(intIndex) & EndUpdateStr & IDAfterSale
Next
End Sub
谁能给我写出正确的语法? 谢谢
【问题讨论】:
-
您可以在单个查询中更新多个列:
update T set a=1, b=2, c=3 where ...,因此无需 3 次访问数据库。您应该使用参数化插入来避免注入漏洞。