mysql - 将行从一个链接表插入到另一个链接表

标签 mysql excel ms-access vba

我在 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

最佳答案

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。

关于mysql - 将行从一个链接表插入到另一个链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466913/

相关文章:

mysql - MySQL中用命令或函数查询执行情况

asp.net 4.0 Web 服务无法在服务器上运行;有人可以校对代码吗?

excel - 宏 - 打开文件夹中的所有文件

Python:测试单元格是否为空时无限循环

excel - MS Office VBA 从 2003 年到 2010 年的变化

php - MySQL 数据库中带有 Codeigniter 和 Bootstrap 的下拉菜单

php - mysql 将 varchar 转换为日期

c++ - 从 Excel 到 utf-8 mysql 的字符串

ms-access - recordset.find 使用变量 VBA ADODB

sql-server - 如何从 VBA 中的函数返回 ADODB.Connection?