【发布时间】:2016-09-14 06:54:38
【问题描述】:
我在两张 Excel 表格中构建了大量数据,其中包含以下列:
EXCEL DATA
Sheet1 [pod, client, address, ...etc] -one record per [pod]
Sheet2 [pod, pointofmeasure, typepct, ...etc] -one-to-many records per [pod]
-关系在 sheet1.pod 和 sheet2.pod 之间(一对多关系)
我需要一个 sql 来将该 excel 表中的数据插入到具有以下表结构的 access 数据库中:
ACCESS DATABASE
Table1 [id, pod, client, address, ...etc]
Table2 [id, pod_id, pod, pointofmeasure, typepct, ...etc]
其中 table2.pod_id = table1.id
可以在一次 sql 插入中完成吗?
我想出了这个批量插入...
cn.Open scn
ssql = "INSERT INTO table1 (pod, client, address, ...etc) "
ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "].[sheet1$]"
cn.Execute ssql, cAffectedRows
cn.Close
现在我到底是如何获得 id 以将数据插入 table2 的?
【问题讨论】:
-
原始数据中id、pod和pod_id之间没有关系所以no,这是做不到的。见minimal reproducible example。
-
sheet1 中的 pod 包含唯一值,sheet2 包含链接到 pod的多条记录> 从第一张纸开始 - pod.sheet1 和 pod.sheet2 之间的关系(一对多)
-
请看stackoverflow.com/questions/595132/…,我不知道的是,访问支持@@Identity。也许这个问题对你有一点帮助?
标签: sql excel vba ms-access ado