Я написал «VBA», который лаборатория использовала в течение 2 лет, в основном использовала базу данных доступа в качестве запроса. В последнее время используется база данных SQL и для использования в запросе создается ODBC. Проблема заключается в том, что запрос не может быть просмотрен excel, за исключением моего компьютера. У меня есть SQL Management Studio 2008 на моем, но я не могу заставить запрос работать на других компьютерах. Я пробовал разные драйверы, но не могу решить эту проблему.SQL-запрос не работает должным образом в excel 2010
ответ
Это не «драйвер ODBC», который не может быть найден; это созданный вами файл DSN (с учетными данными), который является локальным для вашего компьютера. Вам нужно записать все в строку соединения, которая будет переноситься в модуле VBA.
Sub sql_connect()
Dim svr As String, db As String, usr As String, pwd As String
Dim sCNX As String, sSQL As String
Dim cnx As Object, rs As Object
Set cnx = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
svr = "THE_SERVER"
db = "myDatabase"
usr = "me_user"
pwd = "me_users_pwd"
sCNX = "Provider=SQLNCLI11;Server=" & svr & ";Database=" & db & ";UID=" & usr & ";PWD=" & pwd & ";"
'Debug.Print sCNX 'used for syntax checking
cnx.Open sCNX
sSQL = "SELECT TOP 50 * FROM [myDatabase].dbo.[myTABLE]"
rs.Open sSQL, cnx
Do While Not rs.EOF
Debug.Print rs(0) & " - " & rs(1)
rs.movenext
Loop
rs.Close: Set rs = Nothing
cnx.Close: Set cnx = Nothing
End Sub
Есть способы скрыть учетные данные, которые вы предоставляете; запуск вашего проекта VBA с помощью пароля будет началом. Создание пользователя MSSQL с ограниченным доступом только для чтения также является хорошим шагом.
Я не уверен, является ли это очевидным, но это пользователь и пароль как учетные данные пользователя SQL, а не пользователь домена с использованием надежного соединения.
Спасибо всем за помощь и за то, что вы познакомили меня с подключением DSN-less, отлично работает :). – Chris
- 1. Код Vba не работает должным образом в Excel 2010?
- 2. Автозаполнение не работает должным образом в Excel
- 3. Excel Worksheet.Cells не работает должным образом
- 4. MS Excel: Формула не работает должным образом
- 5. Надстройка Excel Не работает должным образом
- 6. Excel Поиск Формула не работает должным образом
- 7. Экспорт Excel не работает должным образом
- 8. Функция excel sumif не работает должным образом
- 9. Excel 2010 VBA - глобальные переменные не установлены должным образом
- 10. Application.Statusbar не работает должным образом в Excel 2013
- 11. Код VBA из Excel 2003 не работает должным образом в Excel 2010/2013
- 12. VBA PageSetupXL4M не форматировать должным образом страницы на Excel 2010
- 13. Активная запись SubSonic в vs 2010 не работает должным образом
- 14. «Найти все» в Visual Studio 2010 не работает должным образом
- 15. «object.Activate» не работает должным образом в Excel 2013
- 16. не работает должным образом
- 17. не работает должным образом
- 18. не работает должным образом
- 19. SaveAs() не работает должным образом
- 20. : не работает должным образом
- 21. preg_match не работает должным образом
- 22. $ location.path ("/"); не работает должным образом
- 23. Обновление скриптов не работает должным образом?
- 24. Импорт не работает должным образом в плагине Laravel-Excel
- 25. прокрутка для моих данных в excel не работает должным образом
- 26. Условное заявление не работает должным образом в VBA Excel
- 27. Масштаб Selenium не работает должным образом больше (в Excel VBA)
- 28. Загрузить Excel не работает должным образом в ASP
- 29. iLastRow не работает должным образом
- 30. dojox.mobile.SearchBox не работает должным образом
Пожалуйста, добавьте примеры кода и сообщения об ошибках или более подробное описание непредвиденного поведения. –
Я не в офисе и вывешу точную ошибку завтра, но в принципе не могу найти драйвер odbc. Я попытался использовать распространяемый драйвер доступа ms и sqlmanagement.msc в папке system32, но это не помогает. Спасибо :). – Chris
Итак, вы обращались к Access из Excel, и теперь вы переходите от Excel к SQL Server? Похоже, это может быть проблема с разрешением. –