Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
нет, он ругается на отсутствующий DSN.
найдите его у себя и создайте такой же коллегам

К сообщению приложен файл. Размер - 71Kb
17 ноя 16, 17:23    [19904735]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
o-o,

С таким же именем как у себя создать?
17 ноя 16, 17:30    [19904777]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
o-o,

Попробовал создать System DSN все шаги выполнил даже сделал test connection и получил подтверждение что есть соединение.
Но не появилась ДНС вкладке System DNS. Может быть у меня прав нет?
17 ноя 16, 17:36    [19904799]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
Findep
o-o,
С таким же именем как у себя создать?

да. с тем же именем, которое в Экселе было использовано.
в меню Экселя: Data -> Connections -> Properties
17 ноя 16, 17:44    [19904843]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
o-o,


А можно по подробнее если не сложно?

Спасибо!!!
17 ноя 16, 17:54    [19904891]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9160
o-o,

какой еще DSN, стесняюсь спросить.

Findep,
Oracle никаким боком тут не нужен.
Вы передаете отчет коллегам, но в нем соединение или не сохранено или Native Client у них не 10.0. Вам бы на форум по Excel.
17 ноя 16, 18:02    [19904926]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
Владислав Колосов,

Насколько я причина все таки из-за разных версии клиента Sql Instant?
17 ноя 16, 18:07    [19904943]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
смотрите, что за DSN забит в Эксель,
содаете такой же тем, кому отдали Эксель

К сообщению приложен файл. Размер - 39Kb
17 ноя 16, 18:08    [19904948]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
Владислав Колосов
o-o,
какой еще DSN, стесняюсь спросить.

тот самый, что в ошибке
автор
(Microsoft)(ODBC driver Manager) Data source name not found
17 ноя 16, 19:01    [19905073]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
Владислав Колосов
Вы передаете отчет коллегам, но в нем соединение или не сохранено или Native Client у них не 10.0. Вам бы на форум по Excel.

... или соединение сохранено, но данный DSN существует лишь на компе создателя
17 ноя 16, 19:04    [19905081]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
Findep,
А зачем вы выгружаете источники данных?
Если обновить данные, а затем удалить источник - данные останутся.
Проблема решена.
17 ноя 16, 20:38    [19905340]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35853
Блог
так надо:

К сообщению приложен файл. Размер - 101Kb
17 ноя 16, 21:27    [19905528]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35853
Блог
тогда будет использоваться копия коннекта в файле
17 ноя 16, 21:28    [19905534]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Massa52
Member

Откуда:
Сообщений: 395
Я использую макросы для общения с 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]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
Критик
тогда будет использоваться копия коннекта в файле



Там же просто выбираешь таблички.
А как насчет запросов с условиями?
18 ноя 16, 07:15    [19906150]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Findep
Member

Откуда:
Сообщений: 7
Руслан Дамирович
Findep,
А зачем вы выгружаете источники данных?
Если обновить данные, а затем удалить источник - данные останутся.
Проблема решена.


Я хотел что бы они сами выгружали и пользовались
18 ноя 16, 07:16    [19906153]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35853
Блог
Findep
Там же просто выбираешь таблички.
А как насчет запросов с условиями?


К сообщению приложен файл. Размер - 145Kb
18 ноя 16, 08:05    [19906186]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2008 - Внешные данные excel через MS Data Query  [new]
o-o
Guest
Вы до сих пор не создали нужный DSN и не вписали его в свойства соединения?
Ваша ошибка элементарно воспроизводится: меняем на 1 символ имя DSN, на котором построен запрос и вываливается то самое при попытке рефреша.
Что вам неясно?
Вы нашли в меню свойства соединения как у меня на картинке?
18 ноя 16, 09:16    [19906282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить