Excel: обновить SQL из файла ODBC - PullRequest
0 голосов
/ 16 июля 2011

Я использую Excel 2010 для чтения некоторых данных SQL, используя соединение данных ODBC.Для этого у меня есть файлы подключения .odc, к которым я могу получить доступ через вкладку «Данные» и кнопку «Существующие подключения».Excel находит файлы ODC, и он может получить данные из них просто отлично.Microsoft Query также может редактировать запросы без проблем.

Проблема, а также причина, по которой я выбрал .odc-файлы, заключаются в том, что я хотел бы иметь возможность изменять базовый источник данных запросов, а такжесами запросы.Видите ли, эти данные являются выводом моделирования, который я продолжаю обрабатывать в Excel;симулятор выводит базу данных SQLite.Я регулярно делаю изменения в симуляторе, чтобы исправить ошибки, а затем повторяю для получения новых данных.Формат вывода (т. Е. Структура и формат таблицы и все такое) одинаковы, отличаются только данные.

Следовательно, идея состоит в том, чтобы иметь возможность просто отредактировать .odc-файл для использованиябазы данных с более новыми результатами моделирования, нажмите обновить в Excel и покончите с этим (файлы .odc содержат как строку подключения, так и строку SQL).После работы с чудовищно установленным флажком «всегда использовать это соединение» я обнаружил, что Excel обнаружит любые изменения в строке подключения (т. Е. Изменив файл базы данных), но отказывается выбиратьо любых изменениях в SQL.

Конечно, изменения в запросе SQL не должны происходить так часто, но они случаются время от времени.Я нередко выполняю некоторые вычисления в SQL, а не в Excel, потому что откровенное смешение «живых» столбцов DataTable (или как они там называются) и «обычных» производных столбцов звучит как мир боли.Однако, поскольку я допускаю ошибки в этих вычислениях, я хотел бы обновить их, что означает обновление SQL.

Так что, очевидно, Excel будет читать строку подключения из файла ODC, нос радостью проигнорирует в нем SQL-запрос и (я полагаю) сохранит его в файле XLS.Я могу только представить себе ужас, если вы находитесь в обстановке компании и у вас есть какие-то аналитические запросы или что-то, хранящееся в файлах ODC, только для того, чтобы обнаружить, что вы можете вносить изменения вручную на каждом компьютере всей компании.

Я делаю что-то не так или это намеченное поведение?Есть ли способ заставить Excel фактически использовать SQL из файлов ODC вместо того, чтобы всегда использовать его локальную версию?

1 Ответ

1 голос
/ 13 июня 2012

Несколько вещей:

Part 1
 - Create a template .ODC file.  
    - Create a connection Data tab, From Other Sources, follow the wizard, connect to the DB and data table.
 - Go to the Data tab, Connections and set the connection properties that you want.
 - Export the connection

Part 2
 - Create the working SQL query for SQLite that produces the desired results
 - Put the entire SQL query on one line (odc files like everything on one line, don't ask)

Part 3
 - Right click on the .odc file, use 'Open with' and open it in notepad or notepad++ (NOT WORD)
 - Look for <odc:CommandText> </odc:CommandText>
 - Remove the text that is there and paste your one line query between the commandtext tags
 - Save the .odc file
 - Double click on the .odc file and see if the data opens/appears in Excel

Don't forget to double check to make sure the data in the <odc:ConnectionString> </odc:ConnectionString> is correct.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...