2015-09-03 3 views
0

Я создал макрос в книге Excel, чтобы извлечь подмножество данных из базы данных SQL на основе ввода пользователем.Подключение данных Excel к ошибке SQL dB

Макрос предлагает пользователю для ввода параметров и вставляет этот параметр в готовую хранимую процедуру сконфигурированной в связи с данных Excel - см ниже моей УВА:

Sub RefreshDBQuery() 

    Dim Val As Integer 

    Application.ScreenUpdating = False 

    Worksheets("Adjustable CF").Select 
    Val = InputBox("Enter valid 4 digit number", , 1907) 

    Sheets("TestData").Visible = True 

    Worksheets("TestData").Select 
    Worksheets("TestData").Range("A1").Select 

    ActiveCell.Value = Val 

    With ActiveWorkbook.Connections("MacroExtraction 2Server").OLEDBConnection 

    .CommandText = "EXEC dbo.prV_FlowExtract '" &  Range("A1").Value & "'" 

    End With 

    ActiveWorkbook.Connections("MacroExtraction 2Server").Refresh 

    Sheets("TestData").Visible = False 

    End Sub 

Когда я запускаю его - она отлично работает и, кроме того, так как это изменение существующего соединения данных (один я уже настроен), я замечаю ODC-файл в папке под названием «Источники Мои данные» в разделе Мои документы:

snapshot of the odc file residing locally on my desktop Documents folder

Однако, когда я посылаю эту книгу к коллеге, чтобы запустить макрос и для извлечения данных - макрос может работать до точки, и она получает сообщение об ошибке: SQL state 42000, Server error 4060

я спрашиваю ее, чтобы открыть папку «Мои источники данных», и я не вижу файл odc: no 'MacroExtraction 2Server' odc

Мой вопрос: что мне не хватает? Вернее, что мой коллега не хватает, чтобы заставить ее макрос работать на своей локальной машине?

Я проверил с администратором дБ, который сказал, что у нее есть разрешения, необходимые для доступа к серверу, поэтому я выбираю отсутствие odc в качестве причины для моей озабоченности. Должен ли я скопировать мой файл odc и отправить его ей для копирования в папку «Источники данных»? Должен ли я переписать макрос и переустановить соединение с данными на ее локальной машине? Любой, кто имеет опыт комментировать, будет очень благодарен! Благодаря!

+0

Так что вам не хватает здесь, что соединения для передачи данных специфичны для вашего ПК. В вашем коде вы открываете эту строку подключения и обновляете ее, но эта строка соединения oledb по-прежнему размещается на вашем ПК в вашем или «My Data Sources». Это зависит от ваших намерений и того, как для сервера настроен доступ к тому, как вы будете корректировать свой код, и если вы его отрегулируете вообще. –

ответ

0

Только макрос не содержит всю необходимую информацию (например, имя сервера). Попробуйте запустить «NewSQLServerConnection.odc» в моем местоположении источников данных моих коллег, заполните необходимые данные, убедитесь, что имя соединения совпадает с вашим макросом, а затем макрос должен работать.

Надеюсь, это поможет!

+0

PS - если после этого все еще не работает, и вы используете аутентификацию Windows в своем соединении с базой данных, попробуйте войти на компьютер своего коллеги и посмотреть, работает ли он. Если это так, вам нужно снова поговорить с вашим администратором базы данных. –

+0

Вы имели в виду «MacroExtraction 2Server.odc» в папке источников данных моих коллег? Будет делать - увидит, работает ли это. Благодаря! –

+0

В основном, да. Держи меня в курсе! –