Я только начал смотреть в взаимодействующей с базой данных SQL с помощью Excel VBA, и я начал с основного кода соединения от MSDN:Excel VBA для SQL базы данных
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyRecordset = New ADODB.Recordset
Dim strSQL As String
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=fatcoin;User ID=root;Password=root;"
objMyConn.Open
'Set and Excecute SQL Command'
strSQL = "select * from productlist"
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open strSQL
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
Проблема у меня есть в то время как у меня есть SQL экземпляр работает на моей машине, на порт 3306, который я могу получить доступ, используя, например, HeidiSQL, каждый раз, когда я запускаю этот код, я получаю сообщение об ошибке:
[DBNETLIB] [ConnectionOpen (соединение()).] SQL Server не существует или доступ запрещен
Я также попытался добавить порт:
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost,3306;Initial Catalog=fatcoin;User ID=root;Password=root;"
и другие подобные вещи. Я не вижу причин, по которым он не должен работать, но я не играл с этим вообще. Я пробовал искать другие темы безрезультатно.
Любые идеи? Я работаю с Excel 2010 на 64-битной машине, используя MySQL 5.7 Я должен упомянуть, что вышеуказанная кодировка вводится в раздел «Module1» проекта VBAP в Excel. Спасибо
Вы говорите, что у вас есть сервер mysql, но вы пытаетесь подключиться к серверу ms sql. Установите 64-битный myodbc с сайта mysql, затем проверьте строку подключения на connectionstrings.com. – Shadow
Я немного запутался здесь. У меня уже есть myodbc из-за моей установки MySQL. Я проверил connectionstrings.com и, похоже, указал ту же строку соединения, что и в списке. Он также имеет другую строку с Provider = MySQLProv, но Excel говорит, что это недействительный провайдер – Woody
Когда я проверяю connectionstring.com, то для 64-битного myodbc я вижу следующий пример: 'Driver = {MySQL ODBC 5.2w Driver}; Server = локальный; Database = MyDatabase; User = myUsername; Password = myPassword; Option = 3; 'Это полностью отличается от вашего. Но вы можете использовать графический интерфейс myodbc для создания соединения, которое вы можете использовать в Excel. – Shadow