您好我试图找出如何遍历列表来更新访问表。
products表有一个条形码列和状态。状态选项是instock,延期交货,已停产。
我有一个可以存储在excel中的条形码列表,或者我可以运行查询但是我需要遍历条形码列表以将每个项目标记为已停止。在没有任何帮助之前没有这样做会非常感谢。
以下方法假定您已从Excel文件导入数据或从Access中链接到该文件。
查询方法:如果表或查询中有已停用的条形码,则可以使用此更新查询(对于像您这样的简单案例,建议使用此方法):
UPDATE PRODUCTS SET PRODUCTS.STATUS = "DISCONTINUED"
WHERE PRODUCTS.BARCODE IN (SELECT BARCODE FROM OLD_BARCODES);
VBA方法:如果您坚持使用VBA,则可以使用此功能遍历两个条形码列表并更新您的活动列表:
Function UpdateBarcodeStatus()
Dim rsDC, rsCur As Recordset
' open rs for current barcodes
Set rsCur = CurrentDb.OpenRecordset("SELECT BARCODE, STATUS FROM BARCODES")
' open rs for discontinued barcodes
Set rsDC = CurrentDb.OpenRecordset("SELECT BARCODE FROM OLD_BARCODES")
On Error GoTo ErrHandler:
rsCur.MoveFirst
' loop through all current barcodes
While Not rsCur.EOF
rsDC.MoveFirst
' loop through discontinued barcodes for each current barcode
While Not rsDC.EOF
If rsDC!BARCODE = rsCur!BARCODE Then
' edit current barcode status
rsCur.Edit
rsCur!Status = "DISCONTINUED"
rsCur.Update
End If
rsDC.MoveNext
Wend
rsCur.MoveNext
Wend
HandleClose:
' close recordsets
rsDC.Close
rsCur.Close
Exit Function
ErrHandler:
Debug.Print Err.Description
GoTo HandleClose
End Function