繁体   English   中英

从一个链接表插入行到另一个

[英]Insert row from one linked table to another

我在Access中有三个表:一个链接到Excel,一个链接到MySQL,以及一个名为LastQuery的本地表,其中只有一行和一列。 我使用带有计时器的形式的VBA查询从Excel表中选择数据并将其插入MySQL表中。 与此同时,我更新dtmInsertedTime我插入LastQuery最后一条记录(进入标题为排last ),使下一次的形式计时器滴答,它将从下一个记录继续下去,直到它已插入每记录。 我的代码很简单,但是我遇到了错误,无法按照我的描述使其正常工作。 这是我的代码:

Private Sub Form_Timer()
CurrentDb.Execute "INSERT INTO tblevent (vchrFacility, intWorkCell, intStn, intEventCode) SELECT vchrFacility, intWorkCell, intStn, intEventCode from excelTblEvent where dtmInsertedTime > LastQuery.Last"
CurrentDb.Execute "UPDATE LastQuery, excelTblEvent SET LastQuery.Last = excelTblEvent.dtmInsertedTime"
End Sub

编辑:

没有你们,我做不到。 我的代码完全按照我想要的去做,没有任何问题:

Option Compare Database
Private Sub Form_Timer()
CurrentDb.Execute "INSERT INTO tblevent (vchrFacility, intWorkCell, intStn, intEventCode) SELECT vchrFacility, intWorkCell, intStn, intEventCode FROM excelTblEvent WHERE dtmInsertedTime > DLookup('Last', 'LastQuery')"
CurrentDb.Execute "UPDATE LastQuery, excelTblEvent SET LastQuery.Last = excelTblEvent.dtmInsertedTime"
End Sub

Database.Execute方法帮助部分的一条注释说:

Microsoft Office Access 2007中不支持ODBCDirect工作区。如果要在不使用Microsoft Access数据库引擎的情况下访问外部数据源,请使用ADO。

您可能必须走这条路线。

Access的数据库引擎将抱怨该INSERT语句。 检查语句的SELECT部分:

SELECT vchrFacility, intWorkCell, intStn, intEventCode
from excelTblEvent
where dtmInsertedTime > LastQuery.Last

WHERE子句引用数据源LastQuery ,而FROM子句中未提及。 那行不通。 我们需要更多地了解LastQuery ,但是作为一个疯狂的猜测,也许这可能行得通...

WHERE dtmInsertedTime > DLookup("Last", "LastQuery")

如果Access抱怨UPDATE语句,请在查询设计器中重新生成它。 在此工作后,请修改您的VBA代码以使用相同的工作SQL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM