Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Findep Member Откуда: Сообщений: 7 |
Всем привет! Работаю в финансовом департаменте и имеется опыт работы с SQL запросами. Была поставлена задача выгрузки данных из БД в MS excel 2007 в виде отчетов. Задача была выполнена с помощью вкладки Дата -> Внешние данные -> MS Query. В настройках подключения указал обновлять данные при открытия эксель файла и сохранить пароль. Отчет работает нормально и обновляются данные , но только локально на моем компьютере. Когда скидываю этот отчет коллегам и при обновления файла система выдает ошибку и ругается на ODBC driver: (Microsoft)(ODBC driver Manager) Data source name not found and no default driver specified Проверил у коллеги odbcad32.exe - у него были драйвера SQL server Native client, MS ODBC for Oracle, и куча стандартных. Пришлось установить еще Oracle ODBC driver отдельно без клиента. У меня драйвера SQL server Native client 10.0, Oracle ODBC driver, MS ODBC for Oracle и тд. Но все равно выдает ту же ошибку. В чем проблема не пойму. Так же для информации: Мой Connection String запрса: DRIVER=SQL Server Native Client 10.0;SERVER=server;UID=user;PWD=password;APP=2007 Microsoft Office system;WSID=My Computer; Может это быть из-за разных версии драйверов SQL server Native client? Может быть кто-нибудь сталкивался с данной проблемой Заранее спасибо |
17 ноя 16, 17:09 [19904665] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
нет, он ругается на отсутствующий DSN. найдите его у себя и создайте такой же коллегам К сообщению приложен файл. Размер - 71Kb |
17 ноя 16, 17:23 [19904735] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
o-o, С таким же именем как у себя создать? |
17 ноя 16, 17:30 [19904777] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
o-o, Попробовал создать System DSN все шаги выполнил даже сделал test connection и получил подтверждение что есть соединение. Но не появилась ДНС вкладке System DNS. Может быть у меня прав нет? |
17 ноя 16, 17:36 [19904799] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
да. с тем же именем, которое в Экселе было использовано. в меню Экселя: Data -> Connections -> Properties |
||
17 ноя 16, 17:44 [19904843] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
o-o, А можно по подробнее если не сложно? Спасибо!!! |
17 ноя 16, 17:54 [19904891] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
o-o, какой еще DSN, стесняюсь спросить. Findep, Oracle никаким боком тут не нужен. Вы передаете отчет коллегам, но в нем соединение или не сохранено или Native Client у них не 10.0. Вам бы на форум по Excel. |
17 ноя 16, 18:02 [19904926] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
Владислав Колосов, Насколько я причина все таки из-за разных версии клиента Sql Instant? |
17 ноя 16, 18:07 [19904943] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
смотрите, что за DSN забит в Эксель, содаете такой же тем, кому отдали Эксель К сообщению приложен файл. Размер - 39Kb |
17 ноя 16, 18:08 [19904948] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
тот самый, что в ошибке
|
||||
17 ноя 16, 19:01 [19905073] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
... или соединение сохранено, но данный DSN существует лишь на компе создателя |
||
17 ноя 16, 19:04 [19905081] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 940 |
Findep, А зачем вы выгружаете источники данных? Если обновить данные, а затем удалить источник - данные останутся. Проблема решена. |
17 ноя 16, 20:38 [19905340] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34723 Блог |
так надо: К сообщению приложен файл. Размер - 101Kb |
17 ноя 16, 21:27 [19905528] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34723 Блог |
тогда будет использоваться копия коннекта в файле |
17 ноя 16, 21:28 [19905534] Ответить | Цитировать Сообщить модератору |
Massa52 Member Откуда: Сообщений: 382 |
Я использую макросы для общения с SQL.Sub RunQuery(w As String) Dim con As ADODB.Connection Dim cmd As ADODB.Command Dim rs As ADODB.Recordset Dim WSP1 As Worksheet Set con = New ADODB.Connection Set cmd = New ADODB.Command Set rs = New ADODB.Recordset Application.DisplayStatusBar = True Application.StatusBar = "Contacting SQL Server..." Set WSP1 = Worksheets(w) WSP1.Activate ' Remove any values in the cells where we want to put our Stored Procedure's results. Dim rngRange As Range Set rngRange = Range(Cells(4, 1), Cells(Rows.Count, 1)).EntireRow rngRange.ClearContents ' Log into our SQL Server, and run the Stored Procedure con.Open "Provider=SQLOLEDB;Data Source=tiqsql;Initial Catalog=WMS_OTK_V425;User ID=sa;Password=TIQ9W6w3;" cmd.ActiveConnection = con ' Set up the parameter for our Stored Procedure ' (Parameter types can be adVarChar,adDate,adInteger) cmd.Parameters.Append cmd.CreateParameter("StartDate", adVarChar, adParamInput, 10, Range("G1").Text) cmd.Parameters.Append cmd.CreateParameter("EndDate", adVarChar, adParamInput, 10, Range("G2").Text) cmd.Parameters.Append cmd.CreateParameter("CarClass", adVarChar, adParamInput, 10, Range("J1").Text) cmd.Parameters.Append cmd.CreateParameter("TrainDir", adVarChar, adParamInput, 10, Range("J2").Text) cmd.Parameters.Append cmd.CreateParameter("SiteId", adInteger, adParamInput, 10, Range("L1").Text) Application.StatusBar = "Running stored procedure..." cmd.CommandText = "usp_GetAerageByCarClass" Set rs = cmd.Execute(, , adCmdStoredProc) ' Copy the results to cell B7 on the first Worksheet 'Set WSP1 = Worksheets(w) 'WSP1.Activate If rs.EOF = False Then WSP1.Cells(4, 2).CopyFromRecordset rs rs.Close Set rs = Nothing Set cmd = Nothing con.Close Set con = Nothing Application.StatusBar = "Data successfully updated." Columns("B:B").Select Selection.NumberFormat = "d/m/yyyy h:mm" Range("C2").Select End Sub |
18 ноя 16, 02:47 [19906071] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
Там же просто выбираешь таблички. А как насчет запросов с условиями? |
||
18 ноя 16, 07:15 [19906150] Ответить | Цитировать Сообщить модератору |
Findep Member Откуда: Сообщений: 7 |
Я хотел что бы они сами выгружали и пользовались |
||
18 ноя 16, 07:16 [19906153] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34723 Блог |
К сообщению приложен файл. Размер - 145Kb |
||
18 ноя 16, 08:05 [19906186] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Вы до сих пор не создали нужный DSN и не вписали его в свойства соединения? Ваша ошибка элементарно воспроизводится: меняем на 1 символ имя DSN, на котором построен запрос и вываливается то самое при попытке рефреша. Что вам неясно? Вы нашли в меню свойства соединения как у меня на картинке? |
18 ноя 16, 09:16 [19906282] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |