您好,我正在尝试找出如何遍历列表以更新访问表的方法。
products表具有一列,用于显示条形码和状态。状态选项为库存,缺货,已停产。
我有一个可以存储在excel中的条形码列表,也可以运行查询,但是我需要遍历条形码列表以将每个项目标记为已停产。在没有任何帮助之前还没有这样做。
答案 0 :(得分:1)
下面的方法假定您已经从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