我有一个查询要从SQL的表中获取MAX recordId。然后,将值放在数组中,然后将1加到变量中。然后,我使用变量在SQL中创建recordId。如何为每个循环将recordId加1?
query3 = "SELECT MAX(tbl_eInvoice_Main.RecordID) AS RecordID, " & _
"MAX(tbl_ImportDate.toolImportId) As toolImportId FROM tbl_eInvoice_Main " & _
"INNER JOIN tbl_ImportDate ON tbl_eInvoice_Main.ToolImportID = tbl_ImportDate.ToolImportID;"
rs.Open query3, con, adOpenStatic, adLockReadOnly, adCmdText
arr = rs.GetRows(1)
RecordID = arr(0, 0) + 1
ToolImportId = arr(1, 0) + 1
Worksheets("DATA").Activate
Dim rng As Range: Set rng = Application.Range("A2:IP1000")
Dim row As Range
For Each row In rng.Rows
query2 = "INSERT INTO tbl_eInvoice_Main (RecordID) values (" & RecordID & ")"
con.Execute query2
Next row
答案 0 :(得分:1)
您可以像这样在循环内移动RecordID逻辑:
For Each row In rng.Rows
arr(0, 0) = arr(0, 0) + 1
query2 = "INSERT INTO tbl_eInvoice_Main (RecordID) values (" & arr(0, 0) & ")"
con.Execute query2
Next row
但是,如果您有多个用户,此方法将无法很好地工作。只是要记住一点。