如何在 Excel 中使用 SQL 连接获取日期范围提示

Posted

技术标签:

【中文标题】如何在 Excel 中使用 SQL 连接获取日期范围提示【英文标题】:How to get a date range prompt using a SQL connection in Excel 【发布时间】:2020-02-14 13:21:51 【问题描述】:

所以我在 MS Query 中创建了一个连接,现在在 Excel 中使用它。我想创建一个宏按钮,当我单击它时,查询会自动运行。

但是,当它运行时,我希望您可以选择某些字段的输入。例如这里的两个日期字段和输入字段:

WHERE 
    (ENTERED_ON BETWEEN ts '2020-02-01 00:00:00' AND ts '2020-02-14 00:00:00') 
    AND (ENTRY = 'apple')

任何帮助将不胜感激。还要注意日期和时间必须专门采用该格式。我还希望让用户的提示尽可能简单,例如:

Dim sUserInput As String 
sUserInput = InputBox("Enter Number:", "Collect User Input") 

【问题讨论】:

【参考方案1】:

我使用单元格范围来引用我的日期范围(以您想要的方式更容易格式化)和 VBA 编码来更新 Excel 工作簿中 SQL 查询的命令文本,而不是输入提示.所以是这样的:

Sql = Sql & " .... SELECT... FROM... " & vbCrLf 'enter your FROM and SELECT statements 
Sql = Sql & "WHERE " & vbCrLf
Sql = Sql & "ENTERED_ON BETWEEN '" & Range("A1") & "' AND '" & Range("A2") & "' " & vbCrLf 
Sql = Sql & "AND (ENTRY = 'apple')"

With ThisWorkbook.Connections("Your Connection Name Here").ODBCConnection
    .CommandText = Sql
    .Refresh
End With

然后您可以将该命令附加到一个宏按钮,该按钮将使用您的日期范围更新您的命令文本字符串。对于更大的查询,我建议使用 SQL 到 VBA 字符串在线转换,如下所示:http://www.dpriver.com/pp/sqlformat.htm

节省大量时间!

【讨论】:

感谢一百万!我最终发现我可以在 Excel 中编辑参数并将它们作为从特定单元格中提取的选择参数。然后我将它链接到一个宏。

以上是关于如何在 Excel 中使用 SQL 连接获取日期范围提示的主要内容,如果未能解决你的问题,请参考以下文章

简单的日期时间 sql 查询

将 Excel 数据“日期范围”传递给 SQL 查询

如何在与 SQL 的连接中设置日期格式?

如何在 Excel 中的日期周围添加单引号以在 SQL 中使用?

如何使用 SQL 和 Python 连接两个具有日期条件的表?

Excel 从 SQL 导入数据 - 日期以文本值形式出现