【发布时间】:2021-03-03 00:22:24
【问题描述】:
VBA 字符串到 SQL 适用于“来自其他非日期列的 WHERE”
我尝试了几次尝试:查询中的 CAST,将两者都转换为整数等。
查询返回 0 或前几列有时是在 VBA 中运行时所有行的日期范围,但是当将 VBA SQL 字符串粘贴到 SQL 中时,它可以工作。
'datecol is type Date in SQL
Dim conn as ADODB.Connection
Dim rs as ADODB.Recordset
Dim strdate, sqldate as String
strdate = "11/10/20"
sqldate = "SELECT * FROM dbTable1 WHERE datecol = '" & strdate & "'";
Set rs = conn.Execute(sqldate)
arrayRows = rs.GetRows
rs.Close
arrayRowsTranspose = Application.Transpose(arrayRows)
【问题讨论】:
-
使用 ADDB.Parameter 将变量传递给查询,例如 stackoverflow.com/a/60640185/7599798 。请注意,
Date可能包含时间部分。 -
感谢您的创意!我不确定我是否正确转换了 ADDB.Parameter。您介意使用 ADDB.Parameter 方法发布代码将如何更改吗?谢谢!
-
或多或少地剪切和粘贴链接中的代码。请注意,您需要创建一个 ADODB.command 对象。你需要知道你在数据库中的日期是否有时间部分。如果没有,只创建一个参数就足够了
标签: sql-server vba