【发布时间】:2013-08-27 13:30:18
【问题描述】:
我在 Access 中有三个表:一个链接到 Excel,一个链接到 MySQL,以及一个名为 LastQuery 的本地表,其中只有一行和一列。我在带有计时器的表单中使用 VBA 查询从 Excel 表中选择数据并将其插入到 MySQL 表中。同时,我更新了我插入到 LastQuery 的最后一条记录的dtmInsertedTime(到标题为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
【问题讨论】:
-
您收到哪些错误?
-
每次修改代码时都会收到不同的错误。对于上面的代码,我得到一个运行时错误 3061(参数太少。预期为 1)。我的研究表明这是由于查询中的错误,所以我摆脱了查询的 where 部分,并遇到了运行时错误 3155(ODBC--在链接表上插入失败)