嵌套循环更新记录集不工作访问
Nested loop to update recordset not working Access
我打算通过表格在 table 中搜索和更新符合我的条件的记录。
我希望我的代码搜索 OrderNo 和 OrderNoItem(对于每个 orderno,我有多个 OrderNoItems,例如 10,20,30... 在我的 table 中)当匹配时我想更新客户名称(Text18.Value) 来自我的表格。
我有以下代码。出于某种原因,它只是更新第一条记录。例如,当我输入 Text25.Value = 12345、Text27.Value = 20 和 Text49.Value = 40 时,它只会更新包含 12345 和 20 的行的客户名称。有人可以帮忙吗?
Set logDB1 = CurrentDb()
Set logRS1 = logDB1.OpenRecordset("Log")
For i = Text27.Value To Text49.Value Step 10
Do Until logRS1.EOF
If (logRS1![OrderNo] = Text25.Value And logRS1![OrderNoItem] = Text27.Value) Then
logRS1.Edit
logRS1![DTN-#] = Text18.Value
logRS1.Update
End If
logRS1.MoveNext
Loop
Next
因为代码设置为执行此操作。这正是 If 条件所需要的。您应该做的是打开由 OrderNo 和 OrderNoItem 范围过滤的记录集,然后循环这些记录。
Set logDB1 = CurrentDb()
Set logRS1 = logDB1.OpenRecordset("SELECT [DTN-#] FROM Log WHERE OrderNo='" & _
Me.Text25 & "' AND Val(OrderNoItem) BETWEEN " & Me.Text27 & " AND " & Me.Text49)
Do Until logRS1.EOF
logRS1.Edit
logRS1![DTN-#] = Me.Text18
logRS1.Update
logRS1.MoveNext
Loop
或者不打开和循环记录集,而是执行更新操作 SQL:
CurrentDb.Execute "UPDATE Log SET [DTN-#]='" & Me.Text18 & _
"' WHERE OrderNo = '" & Me.Text25 & "' AND Val(OrderNoItem) BETWEEN " & Me.Text27 & " AND " & Me.Text49
如果 OrderNo 是数字字段,请删除撇号分隔符。
强烈建议不要在命名约定中使用 punctuation/special 个字符(下划线除外)。更好的是 DTN_Num.
我打算通过表格在 table 中搜索和更新符合我的条件的记录。 我希望我的代码搜索 OrderNo 和 OrderNoItem(对于每个 orderno,我有多个 OrderNoItems,例如 10,20,30... 在我的 table 中)当匹配时我想更新客户名称(Text18.Value) 来自我的表格。
我有以下代码。出于某种原因,它只是更新第一条记录。例如,当我输入 Text25.Value = 12345、Text27.Value = 20 和 Text49.Value = 40 时,它只会更新包含 12345 和 20 的行的客户名称。有人可以帮忙吗?
Set logDB1 = CurrentDb()
Set logRS1 = logDB1.OpenRecordset("Log")
For i = Text27.Value To Text49.Value Step 10
Do Until logRS1.EOF
If (logRS1![OrderNo] = Text25.Value And logRS1![OrderNoItem] = Text27.Value) Then
logRS1.Edit
logRS1![DTN-#] = Text18.Value
logRS1.Update
End If
logRS1.MoveNext
Loop
Next
因为代码设置为执行此操作。这正是 If 条件所需要的。您应该做的是打开由 OrderNo 和 OrderNoItem 范围过滤的记录集,然后循环这些记录。
Set logDB1 = CurrentDb()
Set logRS1 = logDB1.OpenRecordset("SELECT [DTN-#] FROM Log WHERE OrderNo='" & _
Me.Text25 & "' AND Val(OrderNoItem) BETWEEN " & Me.Text27 & " AND " & Me.Text49)
Do Until logRS1.EOF
logRS1.Edit
logRS1![DTN-#] = Me.Text18
logRS1.Update
logRS1.MoveNext
Loop
或者不打开和循环记录集,而是执行更新操作 SQL:
CurrentDb.Execute "UPDATE Log SET [DTN-#]='" & Me.Text18 & _
"' WHERE OrderNo = '" & Me.Text25 & "' AND Val(OrderNoItem) BETWEEN " & Me.Text27 & " AND " & Me.Text49
如果 OrderNo 是数字字段,请删除撇号分隔符。
强烈建议不要在命名约定中使用 punctuation/special 个字符(下划线除外)。更好的是 DTN_Num.