Я часто использую MS Excel Get External Data
создать простые отчеты - рабочие запросы против баз данных и отображающийся приятно в Excel. Замечательные особенности Excel как фильтрация и сводные таблицы и знакомый интерфейс для пользователей делают это довольно хорошим для этого. Однако одно ограничение с Microsoft Query - Вы, не могут добавить параметры к запросам, которые не могут быть отображены графически, который значительно ограничивает SQL, который можно записать.
Там каким-либо решением являются к ошибке "параметры, не позволяются в запросах, которые не могут быть отображены графически"?
Если у вас есть Excel 2007, вы можете написать VBA для изменения соединений (т.е. внешних запросов данных) в рабочей книге и обновления свойства CommandText. Если вы просто добавите ?
там, где вам нужен параметр, то при следующем обновлении данных он запросит значения для соединений! Магия. При просмотре свойств соединения кнопка "Параметры" будет активна и может использоваться как обычно.
Например, я бы написал макрос, выполнил его в отладчике и заставил его установить CommandText соответствующим образом. После этого макрос можно удалить - это просто средство обновления запроса.
Sub UpdateQuery
Dim cn As WorkbookConnection
Dim odbcCn As ODBCConnection, oledbCn As OLEDBConnection
For Each cn In ThisWorkbook.Connections
If cn.Type = xlConnectionTypeODBC Then
Set odbcCn = cn.ODBCConnection
' If you do have multiple connections you would want to modify
' the line below each time you run through the loop.
odbcCn.CommandText = "select blah from someTable where blah like ?"
ElseIf cn.Type = xlConnectionTypeOLEDB Then
Set oledbCn = cn.OLEDBConnection
oledbCn.CommandText = "select blah from someTable where blah like ?"
End If
Next
End Sub