我有一个excel电子表格,有12列,我只需要根据最后两列导入数据(其余部分需要填写最后一列。)
如图所示,我在Access中有一个名为“ProjektDelledning”的表,其中两列DelledningID和SaneringsmetKode已经存在。如果DelledningID已经存在,则需要更新SaneringsmetKode,如果表中没有,则需要添加该值。因此Delledning 258在导入后的Acces中应该有一个SaneringsmetKode = 1,等等。
到目前为止,我已尝试使用此功能:
$file = "test.pdf";
if (!is_file($file)) {
print "File doesn't exist.";
} else {
$fh = @fopen($file, "r+");
if ($fh) {
print "File is not opened and seems able to be deleted.";
fclose($fh);
} else {
print "File seems to be opened somewhere and can't be deleted.";
}
}
我收到一条错误消息,说Access无法将所有数据附加到表中。 0 reocrd中字段的内容被删除,0条记录由于密钥违规而丢失......
值得注意的是,在Access表中,ProjektID和DelledningID都是密钥。
有关如何使用transferpreadsheet或其他方法进行正确导入的任何帮助都有效。我想使用宏进行导入工作。
答案 0 :(得分:0)
方法可以导入临时表(或只是链接范围)。
然后,使用它,运行组合的更新/追加查询。
来自 Smart Access 的旧提示是我的最爱之一:
使用一个查询更新和附加记录
作者:Alan Biggs
您是否知道可以在Access中使用更新查询 同时更新和添加记录?如果你有这个,这很有用 表的两个版本,tblOld和tblNew,并且您想要集成 从tblNew到tblOld的变化。
请按照以下步骤操作:
创建更新查询并添加两个表。通过将tblNew的关键字段拖到tblOld的匹配字段来加入这两个表。
双击关系并选择包含来自tblNew的所有记录的连接选项以及仅包含来自tblNew的记录的连接选项 tblOld。
从tblOld中选择所有字段并将它们拖到QBE网格上。
对于每个字段,在tblNew.FieldName中的“更新到”单元格类型中,其中FieldName与tblOld的字段名称匹配。
从“视图”菜单中选择“查询属性”,并将“唯一记录”更改为“假”。 (这会关闭SQL中的DISTINCTROW选项 视图。如果你留下这个,你将只获得一个空白记录 结果,但您希望添加每个新记录的一个空白记录 to tblOld。)
- 醇>
运行查询,您会看到对tblNew的更改现在位于tblOld中。
这只会添加已添加到tblNew的tblOld记录。 tblOw中不存在于tblNew中的记录仍将保留 tblOld。