Соединение VBA с другой книгой на файловом сервере - PullRequest
0 голосов
/ 17 октября 2018

Я хочу импортировать данные из одной книги в другую и сделал это с помощью драйвера OLEDB.Однако это работает только на моей локальной машине.Когда я попытался протестировать его в реальной производственной среде, он не смог подключиться к исходному файлу.И исполняемый файл, и исходный файл существуют на файловом сервере с требованиями аутентификации, но у меня есть права на чтение / запись, но я не могу открыть исходный файл.

Каждый раз, когда я пытаюсь получить данные из ExcelРабочая книга Я получаю сообщение об ошибке, в котором говорится, что файл, к которому я пытаюсь подключиться, уже открыт и недоступен.Я точно знаю, что никто не использует исходный файл.Я пытался использовать разные способы записи пути к файлу, и каждый вариант дает мне разные ошибки.("\ FILERP \ ...", а также буква диска "G: ...")

Ниже вы можете найти одно из строковых соединений, которые я безуспешно пробовал.

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "User ID=" & userName & ";" & _
                "IMEX=1;" & _
                "Mode=Read;" & _
                "Extended Properties=""Excel 12.0 Xml;" & _
                "HDR=NO;"""

Некоторые примеры ошибок, которые я получаю:

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

Ошибка выполнения '-2147467259 (80004005)' "Невозможно обновить. База данных или объект защищены от записи."

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Integrated Security=SSPI;" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

Ошибка времени выполнения «-2147217887 (80040e21)» «Многошаговая операция OLE DB сгенерировала ошибки. Проверьте каждое значение состояния OLE DB»

    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "User Id=" & userName & ";" & _
                "Password=****;" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

Ошибка времени выполнения -2147217843 (80040e4d) «МожетНе запускайте программу. Информационный файл для рабочих групп отсутствует или открыт исключительно другим пользователем. "

1 Ответ

0 голосов
/ 19 октября 2018

После долгих попыток попробовать разные вещи, ответ был на самом деле очень простым и смущающим.

В моем пути к файлу я думал, что это был \ FILEREP \, когда он на самом деле \ FILERP \

Таким образом, мой урок для всех, убедитесь, что у вас есть правильный путь к файлу, прежде чем вы начнете смотреть на другие вещи!:)

В итоге все, что мне было нужно, это стандартная строка подключения, показанная ниже!

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""
...