Подключение Excel к Mysql Update ПРОБЛЕМА. Подключение mysql к excel


Подключение MySQL в Excel

Приложение Excel позволяет создавать подключение к внешним источникам, в том числе базам данных. Но при необходимости подключиться к базе данных под управлением СУБД MySQL, возникает проблема. Программа просто «не умеет» этого делать, но «научить» ее легко.

Содержание статьи:

Установка драйвера

Прежде необходимо установить драйвер Connector/ODBC от Oracle Corporation, скачать который можно по адресу http://dev.mysql.com/downloads/connector/odbc/ (при выборе драйвера под определенную ОС есть важный нюанс, который будет описан ниже).

Создание источника данных

Далее необходимо создать источник данных ODBC. Для этого заходим в «Панель управления», выбираем пункт «Администрирование», в нем пункт «Источники данных (ODBC)». Откроется следующее окно:

источник данных ODBC

Выбираем «Добавить» и попадаем в меню выбора драйвера:

выбор драйвера MySQL

В списке имеется два возможных драйвера для MySQL различных кодировок: Unicode и ANSI. Выбирайте необходимую Вам. Если не знаете, какая Вам нужна, или это не имеет значения, то лучше устанавливать Unicode.В параметрах подключения указываете:

  1. Произвольное название источника;
  2. Описание источника;
  3. Сервер и порт. Порт оставляйте по умолчанию, если того не требуют настройки сервера;
  4. Пользователь и пароль, как при подключении в phpMyAdmin.

Протестируйте подключение к источнику, нажав кнопку «Test». Если подключение прошло успешно, то в списке баз данных «Database» должен появиться список доступных баз. Выдираем необходимую и жмем «OK». Источник создан.

Настройка параметров источника

Подключение к источнику из Excel

Проходим в книге Excel на вкладку «Данные» -> раздел «Подключения» -> «Из других источников» -> «Из мастера подключения данных».

Мастер подключений данных

Выбираем «ODBC DSN» -> созданное ранее подключение.

Выбор типа источника

Выбор источника подключения

Дальнейшая работа аналогична стандартному подключению к SQL Server.

Ошибка совпадения архитектур

После установки соответствующего драйвера на 64-разрядную ОС, создании источника и подключения к нему, даже если все сделано правильно, может быть выдана ошибка «dns архитектура драйвера и архитектура приложения не соответствуют друг другу».Проблема заключается в следующем. Вероятно, что во время инсталляции пакета программ Microsoft Office были выбраны параметры по умолчанию, при которых устанавливается 32-рязрядная версия. Таким образом, происходит несовпадение разрядностей драйвера и приложения.Решение – скачать и установить дополнительно драйвер для Windows 32-bit.Если установить только 32-битный драйвер, то подключение будет возможно, но создать источник через панель управления не получиться.

Похожие статьи:Новые статьи:

Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.

У Вас недостаточно прав для комментирования.

office-menu.ru

Соединение Excel с MySQL / Песочница / Хабр

На работе встретился с такой задачей «Надо сделать отчет, который брал бы данные из MySQL и закидывал его в таблицу Excel». Ну вот я сейчас и опишу процесс конекта. Есть: 1. Сервер MySQL 2. База данных на MySQL 3. Microsoft Excel 2010

Начнем: 1. Самое первое что нужно сделать, это установить MySQL Connector, актуальную версию можно скачать здесь 2. Нужно создать источник данных, идем вот сюда Панель управления — Администрирование — Источники данных (ODBC) 2.1. Вкладка Пользовательский DSN — Добавить — MySQL ODBC 5.1 Driver (должен появиться после манипуляций с п.1) 2.2. Откроется окно настройки источника, там в поле Data Source Name нужно написать имя сервера MySQL, порт оставляем стандартным (если вы при установке сервера не указали иной), User — имя пользователя, скорее всего root, Password — пароль, Database — тут можно указать базу, к которой подключаться, если все правильно на начальных этапах, то в выпадающем списке уже появятся существующие БД на сервере. 2.3. Ок. Источник данных создан. 3. Теперь необходимо создать строку подключения. 3.1. В любом месте компьютера создайте текстовый файл и переименуйте его в тип файла .udl 3.2. В открывшемся окне Использовать источник данных — выбрать ранее созданный источник данных (п. 2), ввести Пользователь и Пароль, жмем Ок. 3.3. Теперь созданный файл надо открыть с помощью Блокнот'а и там будет что-то подобное:[oledb] ; Everything after this line is an OLE DB initstring Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=MySQL то, что начинается с Provider и до MySQL и есть строка подключения, т.е. Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=MySQL она нам понадобиться при настройке Excel. 4. Теперь скачиваем специально подготовленный мной документ Excel 5. Открываем, возможно будет ругаться из-за того, что у вас сервер отличный от моего. 6. Идем на вкладку Данные — Параметры — Источник данных — Свойства подключения — Вкладка Определения. 6.1. Вводим Строка подключения, которая у нас появилась ранее (п. 3.3.), вводим текст SQL команды и жмем Ок.

Все, если все правильно было сделано, то в правой части должны появиться поля, которые вы хотели выбрать. Советую на сервере протестировать синтаксис и правильность своего SQL запроса, чтобы не появлялись дополнительные вопросы. Лично я работаю с MySQL через HeidiSQL, там сделал запрос, а потом просто скопировал его в Excel.

habr.com

Подключение Excel к Mysql Update ПРОБЛЕМА

я подключаю к таблице тузд через VBA в Excel, и я его обновления:

Set cn = New ADODB.Connection cn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _ "SERVER=localhost;" & _ "DATABASE=employees;" & _ "USER=root;" & _ "PASSWORD=M1llen;" & _ "Option=3" 'lets get the batch info ' ' open a recordset Set rs = New ADODB.Recordset rs.Open "batchinfo", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table from Report 1 'Set wsSheet1 = wbBook.Worksheets(1) ' better refer by name 'Set wsSheet1 = wbBook.Worksheets.("Report 1") Worksheets.Item("Report 1").Select dpath = Range("B2").Text atime = Trim(Range("B3").Text) rtime = Trim(Range("B4").Text) lcalib = Trim(Range("B5").Text) aname = Trim(Range("B6").Text) rname = Trim(Range("B7").Text) bstate = Trim(Range("B8").Text) instrument = GetInstrFromXML() With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datapath") = "abc" .Fields("analysistime") = atime .Fields("reporttime") = rtime .Fields("lastcalib") = lcalib .Fields("analystname") = aname .Fields("reportname") = rname .Fields("batchstate") = bstate .Fields("instrument") = instrument .Update ' stores the new record End With

вопрос в том, что единственное поле, которое обновляется это поле инструмент !!

здесь ıA DESC из batchinfo таблицы MySQL:

mysql> desc batchinfo; +--------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------+------+-----+---------+----------------+ | rowid | int(11) | NO | PRI | NULL | auto_increment | | datapath | text | YES | | NULL | | | analysistime | text | YES | | NULL | | | reporttime | text | YES | | NULL | | | lastcalib | text | YES | | NULL | | | analystname | text | YES | | NULL | | | reportname | text | YES | | NULL | | | batchstate | text | YES | | NULL | | | instrument | text | YES | | NULL | | +--------------+---------+------+-----+---------+----------------+ 9 rows in set (0.00 sec)

Самое смешное, что когда я воссоздать таблицу без auto_increment, то он работает отлично

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

stackoverrun.com

Решение: Подключение MySQL к Excel с запросом

Всем добрый день, Крайняя необходимость возникла, подключить SQL данные и выгрузить их на листок, пробовал вот такой кодSub excelmysql() Dim Conn As New ADODB.Connection Dim server_name As String Dim database_name As String Dim user_id As String Dim password As String   server_name = "sqlserver2" database_name = "esa14" user_id = "логин" password = "пароль"   Set Conn = New ADODB.Connection Conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _ & ";SERVER=" & server_name _ & ";DATABASE=" & database_name _ & ";UID=" & user_id _ & ";PWD=" & password _ & ";OPTION=3" End SubНо он мне выдает неизвестную ошибку, может надо писать полный путь к серверу? либо не нужно указывать логин пароль, так как я локально без логина и пароля подключаюсь?, а мне нужно что бы я мог подключиться и спомощью этого запроса вытащить мне нужные данные, см. нижеSELECT     dbo.c_UserGroup.FullNameRus AS Дистрибьютор, dbo.c_InternalShop.[key] AS КодТТЛ, dbo.c_InternalShop.shopName AS Название,                       dbo.c_InternalShop.address_street AS Улица, dbo.c_InternalShop.address_house AS Дом, dbo.c_InternalShop.shopBoard AS Вывеска,                       dbo.c_ClientShop.[key] AS [Код ТТ] FROM         dbo.c_InternalShop LEFT OUTER JOIN                       dbo.c_UserGroup ON dbo.c_InternalShop.userGroupId = dbo.c_UserGroup.ID LEFT OUTER JOIN                       dbo.c_ClientShop ON dbo.c_InternalShop.id = dbo.c_ClientShop.mapId WHERE     (dbo.c_UserGroup.FullNameRus NOT LIKE '%подключение%') AND (dbo.c_UserGroup.FullNameRus NOT LIKE '%(НР)%') AND                       (dbo.c_UserGroup.FullNameRus NOT LIKE '%(ВНР)%') AND (dbo.c_UserGroup.FullNameRus NOT LIKE '%Велес Групп. Москва%') AND                       (dbo.c_UserGroup.FullNameRus NOT LIKE '%Невский берег. Москва%') AND (dbo.c_ClientShop.[key] IS NOT NULL)                                       AND (dbo.c_UserGroup.FullNameRus = 'Переменная из другого листочка ексель') GROUP BY dbo.c_UserGroup.FullNameRus, dbo.c_InternalShop.[key], dbo.c_InternalShop.shopName, dbo.c_InternalShop.shopBoard, dbo.c_InternalShop.address_street,                       dbo.c_InternalShop.address_house, dbo.c_ClientShop.[key]Честно пока даже не очень представляю как он выводит эти данные на листок. Товарищи, направьте слепого на путь истинный пожалуйста))

studassistent.ru

Подключение MySQL в Excel

Приложение Excel позволяет создавать подключение к внешним источникам, в том числе базам данных. Но при необходимости подключиться к базе данных под управлением СУБД MySQL, возникает проблема. Программа просто «не умеет» этого делать, но «научить» ее легко.

Содержание статьи:

Установка драйвера

Прежде необходимо установить драйвер Connector/ODBC от Oracle Corporation, скачать который можно по адресу http://dev.mysql.com/downloads/connector/odbc/ (при выборе драйвера под определенную ОС есть важный нюанс, который будет описан ниже).

Создание источника данных

Далее необходимо создать источник данных ODBC. Для этого заходим в «Панель управления», выбираем пункт «Администрирование», в нем пункт «Источники данных (ODBC)». Откроется следующее окно:

Выбираем «Добавить» и попадаем в меню выбора драйвера:

В списке имеется два возможных драйвера для MySQL различных кодировок: Unicode и ANSI. Выбирайте необходимую Вам. Если не знаете, какая Вам нужна, или это не имеет значения, то лучше устанавливать Unicode.В параметрах подключения указываете:

  1. Произвольное название источника;
  2. Описание источника;
  3. Сервер и порт. Порт оставляйте по умолчанию, если того не требуют настройки сервера;
  4. Пользователь и пароль, как при подключении в phpMyAdmin.

Протестируйте подключение к источнику, нажав кнопку «Test». Если подключение прошло успешно, то в списке баз данных «Database» должен появиться список доступных баз. Выдираем необходимую и жмем «OK». Источник создан.

Подключение к источнику из Excel

Проходим в книге Excel на вкладку «Данные» -> раздел «Подключения» -> «Из других источников» -> «Из мастера подключения данных».

Выбираем «ODBC DSN» -> созданное ранее подключение.

Дальнейшая работа аналогична стандартному подключению к SQL Server.

Ошибка совпадения архитектур

После установки соответствующего драйвера на 64-разрядную ОС, создании источника и подключения к нему, даже если все сделано правильно, может быть выдана ошибка «dns архитектура драйвера и архитектура приложения не соответствуют друг другу».Проблема заключается в следующем. Вероятно, что во время инсталляции пакета программ Microsoft Office были выбраны параметры по умолчанию, при которых устанавливается 32-рязрядная версия. Таким образом, происходит несовпадение разрядностей драйвера и приложения.Решение – скачать и установить дополнительно драйвер для Windows 32-bit.Если установить только 32-битный драйвер, то подключение будет возможно, но создать источник через панель управления не получиться.

webhamster.ru

Подключение MySQL в Excel ~ Страницы Интернета

Для обработки данных в Excel требуется сначала получить сами данные. Часто такая информация находится во внешних источниках, а именно базах данных. В этой статье описывается подключение электронных таблиц к БД MS SQL Server. На вкладке «Данные» имеется область «Получение внешних данных» на которой необходимо кликнуть по кнопке «Из других источников». Раскроется список источников, к которым можно осуществить подключение. В этом списке выберите пункт «С сервера SQL Server».Выбор SQL Server в качестве источника данныхТеперь на экране появилось окно мастера подключения к данным. Изначально требуется указать имя сервера и учетные сведения для подключения (если Вы их не знаете, то обратитесь к администратору БД).Мастер подключения к даннымПосле заполнения формы нажмите кнопку «Далее», чтобы перейти к выбору базы данных.Выбор базы данныхЗдесь же можно выбрать таблицы, из которых будут грузиться данные, или же снять галочку с пункта «Подключение к определенной таблице». Нажмите кнопку «Далее», чтобы задать имя файла подключения и описание, чтобы в дальнейшем было проще найти данный файл.Имя и описание файла подключенияНажав кнопку «Готово», Вам будет предложено произвести импорт данных с сервера (если в мастере подключений Вами не была выбрана таблица, то сначала ее придется выбрать).Импорт данных из внешнего источникаВ текущем окне можно выбрать место и способ представления импортируемых данных: таблица, сводная таблица, сводная диаграмма или пропустить импорт, выбрав пункт «Только создать подключение».

SQL-запрос

По умолчанию, при импорте из SQL Server, Excel выгружает всю таблицу. Можно изменить выборку, указав SQL-запрос. Для этого во время импорта данных (предыдущий рисунок) необходимо кликнуть по кнопке «Свойства», если подключение создается впервые, либо, если файл подключения уже был добавлен к книге, на вкладке «Данные» в области «Получение внешних данных» кликнуть по кнопке «Подключения», выбрать нужное из списка и открыть его свойства.Изменение свойств подключения к внешним источникамВ свойствах подключения на вкладке «Определение» в поле «Тип команды» поменяйте значение на «SQL», а в поле «Текст команды» введите SQL-код и нажмите «ОК».Указание SQL-запроса в свойствах подключенияТеперь, чтобы получить данные с помощью нового подключения, достаточно вызвать его из существующих подключений на вкладке «Данные» в области «Получение внешних данных». Дальнейшая процедура импорта аналогична рассмотренному выше.

internet-pages.blogspot.com

Подключение к MySQL Базе Данных из vba-приложения. Экспорт данных из Excel в MySQL

Для того что бы получить доступ к MySQL из VBA нам понадобится не так уж много:
  • В References... vba-проекта добавить библиотеку Microsoft ActiveX Data Objects 6.1 Library 
  • Скачать и установить подходящей для вашей версии операционной системы ODBC драйвер. Скорее всего подойдет MySQL ODBC 3.51 Driver. Скачать этот драйвер можно с сайта MySQL: http://dev.mysql.com/downloads/connector/odbc/3.51.html#downloads
  • Собственно, попробовать подключиться к БД:
          Dim oConn As Object    Set oConn = New ADODB.Connection        oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _        "SERVER=localhost;" & _        "DATABASE=testdb;" & _        "UID=root;" & _        "PASSWORD=;" & _        "PORT:3306;" & _        "charset=cp1251;" & _        "Option=3;"        If oConn.State = adStateOpen Then        MsgBox "Connected! =)"    Else        MsgBox "Сan not connect... =("    End If

Первый парметр указывает на резмещение сервер. Там может быть IP-адрес, или домен,дальше — конкретная база данных,имя пользователя,пароль,порт (по умолчанию 3306),указание кодировки excel, для того, что бы при попытки записать в utf-8 базу данных кириллицу не получились кракозябры,последний параметр — без понятия о чем %)

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

Получение данных из базы данных:

      Dim cmd As ADODB.Command  'переменная в которой будет запрос    Set cmd = New ADODB.Command        Dim rec As ADODB.Recordset 'переменная в которой будет результат запроса    Set rec = New ADODB.Recordset        Set cmd.ActiveConnection = oConn 'указываем соединение из примера выше    cmd.CommandText = "select * from user" 'собственно, запрос    cmd.CommandType = adCmdText    cmd.Execute        Set rec.ActiveConnection = oConn    rec.Open cmd        Debug.Print (rec.Fields("login").Value)

Отправка данных в базу данных:

    Dim lg As String    Dim ps As String    Dim fn As String        lg = "pupkin"    ps = "qwerty"    fn = "Вася Пупкин"        cmd.CommandText = "INSERT INTO user (login, password, full_name) VALUES ('" & lg & "', '" & ps & "', '" & fn & "')"    cmd.Execute

egregors.blogspot.com