我計劃通過表單在我的表格中搜索和更新符合我的條件的記錄。我希望我的代碼搜索 OrderNo 和 OrderNoItem(對于每個 orderno,我在我的表中有多個 OrderNoItems,例如 10,20,30...)當有匹配項時我想從我的形式。
我有以下代碼。出于某種原因,它只更新第一條記錄。例如,當我輸入 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
uj5u.com熱心網友回復:
因為代碼被設定為這樣做。這正是 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
或者不是打開和回圈記錄集,而是執行 UPDATE 操作 SQL:
CurrentDb.Execute "UPDATE Log SET [DTN-#]='" & Me.Text18 & _
"' WHERE OrderNo = '" & Me.Text25 & "' AND Val(OrderNoItem) BETWEEN " & Me.Text27 & " AND " & Me.Text49
如果 OrderNo 是數字欄位,請洗掉撇號分隔符。
強烈建議不要在命名約定中使用標點符號/特殊字符(下劃線只是例外)。更好的是 DTN_Num。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386676.html
上一篇:如何從一張表中選擇MSAccessSQL代碼中的*唯一*重復項?
下一篇:如何獲取變數欄位名?
