早上,数据从Microsoft 中提取到Excel中。

然后将这些数据复制到Access中,在Access中将这些数据用于生产调度等。当这些数据被复制到Access中时,会添加一些额外的列来帮助调度和可跟踪性(即剪切、折叠、完成)。

我想要做的是,如果我们再次运行Microsoft报告,并且假设A3、A5和A12状态都已更改为Finished,那么当我们将所有这些行复制并粘贴到Access中时,状态将取决于Prod。订单号与这一地位有关。
发布于 2018-08-20 17:40:23
考虑在Access中使用临时表,定期清除以前的输出并导入当前的Excel输出。然后,使用条件IIF逻辑对最终访问表运行update内部连接查询。
下面是三个操作命令,您可以将它们保存为三个单独的查询,并在导入过程中与DoCmd.OpenQuery或CurrentDb.Execute一起在VBA中运行它们。当然,要适应实际的名字。
删除临时表中的所有数据
DELETE FROM ExcelTempTable;将附加到临时表
INSERT INTO ExcelTempTable
SELECT *
FROM [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Workbook.xlsx].[SheetName$] AS t;更新终表
UPDATE AccessFinalTable a
INNER JOIN ExcelTempTable e ON a.[Production Number] = e.[ProdOrderNo]
SET a.Finished = IIF(e.Status = 'Finished', True, False),
a.Folded = IIF(e.Status = 'Folded', True, False),
a.Cut = IIF(e.Status = 'Cut', True, False);追加终表(仅追加新生产编号的记录)
INSERT INTO AccessFinalTable (Col1, Col2, Col3, ...)
SELECT e.Col1, e.Col2, e.Col3, ...
FROM ExcelTempTable e
LEFT JOIN AccessFinalTable a
ON e.[Production Number] = a.[ProdOrderNo]
WHERE a.[Production Number] IS NULLhttps://stackoverflow.com/questions/51933282
复制相似问题