我仍然是VBA的新手,并且在使用它时遇到了一些困难。我在Excel 2013中连接到SQL,并在命令文本中使用特定脚本。我想构建一个VBA宏,允许我将脚本处理的日期范围设置为特定的单元格值。
示例命令文本:
Select [FIELD NAME]
from [TABLE NAME]
where [DateField] between [DateStart] and [DateEnd]
在上面的场景中,假设我想设置[DateStart] =" E8"和[DateEnd] =" E9"我该怎么做呢?我读过的大多数帖子都说使用Microsoft查询来设置参数,但是我的计算机似乎不支持这样做。
答案 0 :(得分:0)
您可以使用替换功能,因为SQL查询只是VBA的字符串表达式:
sqlStatement = "Select [FIELD NAME] from [TABLE NAME] where [DateField] between [DateStart] and [DateEnd]"
dateStart = Year(Range("E8").value) & "-" & Month(Range("E8").value) & "-" & Day(Range("E8").value)
dateEnd = Year(Range("E9").value) & "-" & Month(Range("E9").value) & "-" & Day(Range("E9").value)
sqlStatement = Replace(sqlStatement, "[DateStart]", dateStart)
sqlStatement = Replace(sqlStatement, "[DateEnd]", dateEnd)