Как получить подсказку диапазона дат с использованием соединения SQL в Excel - PullRequest
0 голосов
/ 14 февраля 2020

Итак, я создал соединение в 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 Ответ

0 голосов
/ 19 февраля 2020

Вместо приглашения ввода я использую диапазон ячеек для ссылки на мой диапазон дат (который намного проще форматировать так, как вы хотите) и кодирование VBA, которое обновляет текст команды запроса SQL в пределах книга Excel Итак, что-то вроде этого:

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

Экономит много времени!

...