【发布时间】:2020-06-04 16:52:23
【问题描述】:
我必须将最新的访问记录附加到带有访问表标题的 excel 表中,其中 excel 表 (LAN) 中的列与访问表中的列 (LAN) 匹配。到目前为止,这是我的代码:
qry = "Select (Select Call_Date from Tel_List Where t.LAN=Tel_List.LAN And Ctrl=(Select Max(Ctrl) From Tel_List Where t.LAN=Tel_List.LAN)) From [Excel 12.0;HDR=Yes;Database=C:\Boda Boda Banja Ltd\Modules\Prototypes\UG RFIN UI 1.0.xlsm].[TEL_List$]t Inner Join Tel_List on t.LAN=Tel_List.LAN Where Ctrl=(Select Max(Ctrl) From Tel_List Where t.LAN=Tel_List.LAN)"
代码返回值,但未附加到相关行。下面是从访问表中检索上一个通话日期后的屏幕截图。
【问题讨论】:
-
您是否要向 Access 表中添加记录?还是要更新 Access 表中的现有记录?该 SQL 中的任何内容都不会追加或更新记录。这将需要一个 INSERT 或 UPDATE 操作。还是要将数据导出到 Excel 工作表? Access 中的查询无法做到这一点。
-
我不是在尝试插入或更新,而是在尝试使用“LAN”列加入访问表和 Excel 表。 LAN 在 Excel 工作表中只会出现一次,但在访问表中可能会出现多次。 excel 表中的某些 LAN 可能不在访问表中。我想加入某些专栏。我已经完成了加入,但它并没有针对每个 LAN 发生。
-
为什么不设置工作表的链接?然后将链接用作查询中的表。将示例数据显示为相关文本表。
-
'Append' 通常意味着添加一些东西。我认为对于 Excel 中的每个 LAN,您只想在访问中找到 1 条最新记录并报告某些字段的值。关系是 Excel 中的 1 条记录在 Access 中可以有 0,1 条或多条记录。对吗?
-
是的。我可以使用“for each”循环,但由于数据在网络上,它需要太多时间。此外,数据库是多用户的。
标签: sql excel vba ms-access join