![](/img/trans.png)
[英]how to define cell excel cell reference as a parameter in SQL query on VBA?
[英]SQL query by date with reference in excel (cell)
我通过VBA进行Mysql查询,并在使用cell中的日期时出错。 我需要使用单元格值进行循环。 我认为这归因于Excel和Mysql之间的日期格式兼容性。 感谢您的帮助。 谢谢!
For R = 6 to lastrow
SQLQuery2 = "SELECT * FROM Mfg.databasemodels_note where typeId = " & Sheets("Sheet1").Range("B" & R) & " AND date < " & Sheets("Sheet1").Range("I" & R) & " order by date asc limit 1;"
简短的答案是您的sql字符串包含MySQL无法识别的日期。 在构建字符串之后立即放置一个断点,运行代码,然后查看字符串的内容; MySQL应该如何理解呢?
根据MySQL参考资料(下面的链接),这是您更新的代码行:
SQLQuery2 = "SELECT * FROM Mfg.databasemodels_note where typeId = " & Sheets("Sheet1").Range("B" & R).Value & " AND date < " & Format(Sheets("Sheet1").Range("I" & R).Value, "'YYYY-MM-DD Hh:NN:SS'") & " order by date asc limit 1;"
真正的答案是,由于SQL注入的风险 ,您永远都不会从头开始构建包含用户输入的SQL字符串。 阅读“ 如何使用VBA / C ++ / Java调用参数化ADO查询 ”以快速了解应做的事情(在运行自己的基本验证之前)。
参考资料: MySQL 5.7:DATE,DATETIME和TIMESTAMP类型 / Visual Basic for Applications:格式函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.