使用VBAreplaceOLEDB连接中的多个命令文本variables与单元格值

我对VBA还是一个新鲜的东西,在开始工作时遇到了一些困难。 我在连接到SQL的Excel 2013中连接了命令文本中的特定脚本。 我想build立一个VBAmacros,允许我设置脚本工作的date范围到一个特定的单元格值。

示例命令文本:

Select [FIELD NAME] from [TABLE NAME] where [DateField] between [DateStart] and [DateEnd] 

在上面的场景中,假设我想设置[DateStart] =“E8”和[DateEnd] =“E9”,我该如何去做呢? 我已经阅读的大多数post都说要使用Microsoft查询来设置您的参数,但是我的电脑似乎并不支持这样做。

您可以使用replace函数,因为SQL查询只是VBA的一个stringexpression式:

 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)