Я часто использую 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
Интерфейс Excel для запросов SQL Server не даст вам настраиваемых параметров. Для этого нужно создать общий запрос Microsoft, затем добавить параметры, а затем вставить свой параметризованный запрос в свойствах соединения. Ниже приведены подробные инструкции для Excel 2010:
Легкое обходное решение (не требуется VBA)
Здесь отредактируйте SQL напрямую, добавив '?' где бы вы ни находились. Работает так же, как и раньше, за исключением того, что вы не получаете nagged.
ДА - решение состоит в том, чтобы сохранить книгу в файле XML (например, "XML Spreadsheet 2003" ) и отредактировать этот файл как текст в блокноте! используйте функцию "ПОИСК" в блокноте, чтобы найти текст запроса и изменить свои данные на "?".
сохранить и открыть в excel, попробуйте обновить данные, а excel будет следить за параметрами.