2015-03-09 7 views
0

Мой уровень навыка: базовый пользователь VBA, почти ничего не знает о SQL (хотя я недавно узнал, как выполнять код и т. Д.).Экспорт SQL-кода из Excel в SQL

Я создал пользовательский интерфейс на листе Excel, чтобы разрешить пользователю вводить переменные отчета (даты и т. Д.). Они переходят во второй лист Excel, который с помощью различных операторов Excel создает необходимый код SQL. Затем мой макрос копирует этот рабочий лист и открывает Microsoft SQL Server 2008 Rx через команду оболочки. В настоящее время я вручную нажимаю «connect» на появившемся окне Microsoft SQL Server 2008 R2 «подключение к серверу» (для которого не требуется пароль, просто требуется, чтобы я нажал «connect»), я создаю новый запрос, я вставляю код, а затем выполнить в SQL. Итак, это последние шаги (открытие SQL, щелчок «connect», копирование/вставка кода, выполнение), который я пытаюсь автоматизировать с помощью VBA.

Чтобы предложить больше контекста, после запуска SQL-кода, у меня есть второй макрос, который использует мастер подключения к данным Excel, чтобы вернуть результирующие данные SQL в мой рабочий лист. Это хорошо работает.

Я исследовал это несколько дней на разных досках. Кажется, что никто не видит моего подхода к созданию кода в Excel (вероятно, потому, что это неэлегантный подход). Или ответы на сообщения выше моего уровня навыков, чтобы понять. Но я боюсь, что задаю вопрос, на который был дан ответ раньше (извинения заранее).

Спасибо за любой совет/время, которое может быть предложено.

Я использую: Excel/Office 2010 Microsoft SQL Server2008 R2 (это то же самое, как Microsoft SQL Server Management Studios My SQL приложение показывает как имена?) Microsoft ActiveX Data Objects 6.1 Library (это не в настоящее время Отредактировано одно сообщение, которое я видел, ссылаясь на необходимость этого. У меня также есть несколько предыдущих версий библиотеки AciveX.)

+0

Вы можете подключиться к SQL и выполнить запросы из VBA. Не нужно открывать Mangement Studio. –

+0

Спасибо всем за вход. Paqogomez: мое намерение использовать Excel было для A) разрешить входной интерфейс конечного пользователя (мои конечные пользователи не являются подкованными SQL и не могут надежно обновлять SQL-код с изменяющимися параметрами) и B), чтобы разрешить конец настройка пользовательского отчета после импорта данных в Excel. Имеет ли SQL Server решения этих проблем? – Kal10

+0

Vojtech Dohnal: Благодарю вас. Не могли бы вы дать мне некоторое представление о том, как это сделать? – Kal10

ответ

1

Что вы делаете, очень изобретательно, но это, вероятно, не нужно. Excel имеет ряд функций для импорта внешних данных.

Я бы посмотрел вкладку Data в Excel и раздел From Other Sources ленты. У вас есть как минимум три варианта: From SQL Server, From Data Connection Wizard и From Microsoft Query.

Все они будут устанавливать соединение с сервером базы данных и выполнять SQL против него. Они возвращают данные в вашу таблицу по-разному.

Если VBA снова вступит в игру, это автоматизирует генерацию и параметризацию запросов, которые они будут выполнять.

Но я бы установил что-то, что работает с константами для ваших значений параметров, во-первых, чтобы вы получили представление о возможностях, а затем прочитали и исследовали динамическую настройку вашего SQL с помощью VBA.

Вы также можете исследовать PowerPivot, между прочим.

+0

Спасибо, Энн Л. Эти параметры вкладки «Данные Excel» все, похоже, ссылаются на IMPORTING в Excel, и это действительно то, что я уже использую для импорта данных SQL. Но похоже, что вы говорите, что они также могут выполнять SQL-запросы? Если да, то как это происходит и где пользователь вводит свои переменные? Кажется, что на это работает мастер запросов Microsoft, но он не очень удобен для пользователей (поскольку конечные пользователи используют эту систему для создания отчетов). – Kal10

+0

@ Kal10 В инструменте Microsoft Query можно настроить параметры и подсказки, чтобы во время выполнения запроса пользователю было предложено ввести значение. Когда пользователь нажимает кнопку «Обновить запрос», запрос выполняется, запрашивает пользователя, а затем возвращает все записи. Также возможно программно генерировать SQL и назначать его соответствующему свойству с помощью VBA, так что выполняемый запрос - это тот, который вы создали программно. У меня нет никакого удобного кода, который бы делал это, но я могу посмотреть на примеры. –

Смежные вопросы