首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Access -更新导入的数据

Access -更新导入的数据
EN

Stack Overflow用户
提问于 2018-08-20 14:46:33
回答 1查看 532关注 0票数 0

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

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

我想要做的是,如果我们再次运行Microsoft报告,并且假设A3、A5和A12状态都已更改为Finished,那么当我们将所有这些行复制并粘贴到Access中时,状态将取决于Prod。订单号与这一地位有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-20 17:40:23

考虑在Access中使用临时表,定期清除以前的输出并导入当前的Excel输出。然后,使用条件IIF逻辑对最终访问表运行update内部连接查询。

下面是三个操作命令,您可以将它们保存为三个单独的查询,并在导入过程中与DoCmd.OpenQueryCurrentDb.Execute一起在VBA中运行它们。当然,要适应实际的名字。

删除临时表中的所有数据

代码语言:javascript
复制
DELETE FROM ExcelTempTable;

附加到临时表

代码语言:javascript
复制
INSERT INTO ExcelTempTable
SELECT * 
FROM [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Workbook.xlsx].[SheetName$] AS t;

更新终表

代码语言:javascript
复制
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);

追加终表(仅追加新生产编号的记录)

代码语言:javascript
复制
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 NULL
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51933282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档