【问题标题】:How to get a date range prompt using a SQL connection in Excel如何在 Excel 中使用 SQL 连接获取日期范围提示
【发布时间】: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") 

【问题讨论】:

    标签: sql excel oracle odbc


    【解决方案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 中编辑参数并将它们作为从特定单元格中提取的选择参数。然后我将它链接到一个宏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多