База данных Excel VBA для SQL
Я только начал изучать взаимодействие с базой данных SQL через Excel VBA, и я начал с базового кода подключения из MSDN:
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 (Connect ()).] 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» VBAProject в Excel. благодаря
- Можно ли передавать информацию из ssrs в excel?
- Подготовка книги Excel для импорта в SQL
- Импорт данных Excel в SQL с помощью VB6
- Нечетность функции AVG SQL Server
- SSIS Объединение определенных столбцов где = XXXX из Excel Source
- Есть ли способ написать select sql query, который примет значение из листа excel и отобразит результат в окне sql
- Excel, SQL - Изменить выбор заголовков строк в столбцы и вставить значения для каждого столбца
- экспорт datagridview в excel
Спасибо за ответы. Я решил свой вопрос через полезную ссылку, я обнаружил, что предложил перейти в 32-разрядный ODBC (потому что Excel 32-разрядный) и создать системный DSN. Затем я использовал строку соединений ниже:
objMyConn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=localhost;Initial Catalog=fatcoin"
Это сработало.