Подключение к удаленной базе данных sql с использованием excel. Mysql подключение к excel
mysql - VB - подключение к локальному SQL-серверу и загрузка данных в таблицу из excel
Не принимая во внимание хороший дизайн, это то, что вам нужно. Просто обновите строку SqlConnection. Если вы решите, что хотите использовать несколько листов, просто добавьте их в переменную рабочих таблиц.
Private Sub SaveDataFromSpreadsheet() Dim filePath = "directory\me_spreadsheet.xlsx" Dim connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", filePath) Dim worksheets As New List(Of String)() From { "Sheet1" } For i As Integer = 0 To worksheets.Count - 1 Dim worksheetName As String = worksheets(i) Dim adapter = New OleDbDataAdapter(String.Format("SELECT * FROM [{0}$]", worksheetName), connectionString) Dim ds = New DataSet() adapter.Fill(ds, "me_table") Dim data As DataTable = ds.Tables("me_table") For x As Integer = 0 To data.Rows.Count - 1 Dim z As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(0).ToString()), "", data.Rows(x).ItemArray(0).ToString()) Dim ad As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(1).ToString()), "", data.Rows(x).ItemArray(1).ToString()) Dim ag As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(2).ToString()), "", data.Rows(x).ItemArray(2).ToString()) Dim retd As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(3).ToString()), "", data.Rows(x).ItemArray(3).ToString()) Dim wg As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(4).ToString()), "", data.Rows(x).ItemArray(4).ToString()) Using myconnection As New SqlConnection("Data Source=Your-Server;Initial Catalog=me_database;Integrated Security=True") myconnection.Open() Dim mycommand As New SqlCommand("INSERT INTO me_Table(z, ad, ag, retd, wg) VALUES(@z, @ad, @ag, @retd, @wg)", myconnection) mycommand.Parameters.Add(New SqlParameter("@z", z)) mycommand.Parameters.Add(New SqlParameter("@ad", ad)) mycommand.Parameters.Add(New SqlParameter("@ag", ag)) mycommand.Parameters.Add(New SqlParameter("@retd", retd)) mycommand.Parameters.Add(New SqlParameter("@wg", wg)) mycommand.ExecuteNonQuery() myconnection.Close() End Using Next Next End SubПодключение Excel к обновлению Mysql ПРОБЛЕМА MS Excel онлайн
Я подключаюсь к таблице mysql через 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здесь ia 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, тогда она отлично работает
мне действительно нужно, чтобы кто-то ответил на этот вопрос, я не забочусь, если у вас есть подозрение или не совсем точно, я попробую любое решение
Solutions Collecting From Web of "Подключение Excel к обновлению Mysql ПРОБЛЕМА"
Я не знаком с MySQL, но TEXT выглядит как тип blob? Если это так, я удивлен, что он работает вообще, поскольку ADO требует специальной обработки для BLOBS ( http://dev.mysql.com/tech-resources/articles/vb-blob-handling.html )
Вместо этого попробуйте использовать VARCHAR .
Вы также можете попробовать ADOCn.Execute "INSERT ..."
excel.bilee.com
Подключение к удаленному mySQL через Excel VBA MS Excel онлайн
Вероятно, глупый вопрос, но мозг не собирает это вместе —
tl; dr: Мой главный вопрос: как выбрать правильные параметры для моей строки подключения? Как определить, каким должен быть мой драйвер? Провайдер? Вариант? Где найти список приемлемых параметров? Как выбрать между ADO и OLE?
Цель: подключиться к размещенному mySQL db, из которого я являюсь администратором.
Проблема: создание успешной строки подключения / выбор правильных параметров.
Я новичок в удалении баз данных. Смотрел весь день сегодня и вчера; есть много статей и сообщений, но ничего не работает для меня – я просто пытаюсь воспроизвести то, что, как я вижу, делается, когда мне нужно просто правильно создать строку, но я не знаю, с чего начать.
Я пробовал использовать библиотеки ActiveX Data Objects 2.7, 2.8 и 6.1. Также попытался использовать OLE DB Simple Provider 1.5 Library. Ниже в тестах используется ADO 6.1.
Пробовал эти строки подключения:
DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=ipaddress;PROVIDER=SQLOLEDB;DATABASE=xxx;UID=xxx;PWD=xxx;— Ошибка: ждет ~ 30 секунд, время ожидания и говорит, что атрибут Invalid Connection String
DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=ipaddress;PROVIDER=Microsoft.Jet.OLEDB.4.0;DATABASE=db_name;USER=xxx;PASSWORD=xxx;— Ошибка: немедленно ошибки и говорит, что не может найти устанавливаемый ISAM
SERVER=ipaddress;PROVIDER=SQLOLEDB;DATABASE=xxx;UID=xxx;PWD=xxx;— Ошибка: ждет ~ 30 секунд, время ожидания и говорит, что SQL Database не существует или доступ запрещен
Я уверен, что добавил правильного пользователя с паролем и разрешениями. Я ничего не делал с DSN.
Я нахожусь на win8.1 x64, используя Excel 2013. Любые советы очень ценятся!
Solutions Collecting From Web of "Подключение к удаленному mySQL через Excel VBA"
excel.bilee.com
Подключение Excel к MySQL и SQLExecute для нескольких пользователей MS Excel онлайн
Мне нужно разработать таблицу Excel, используемую всеми нашими сотрудниками для сбора данных о сроках и других связанных с проектом данных. Эти сотрудники имеют ряд версий Microsoft Office Excel. Мой план состоит в том, чтобы использовать MySQL Server (а не MS SQL) для сбора информации из этих электронных таблиц каждый раз, когда она обновляется или сохраняется.
Проблема:
Оригинальная система – система на основе excel, которая становится слишком большой. Эта новая система должна быть реализована параллельно и устранена громоздкой по мере продвижения, пока у нас не будет полной новой системы, которую все понимают (т.е. внедряя новый материал по частям).
Вопрос:
- Есть ли способ сделать это без VBA и жить? Если нет, мне нужен код для выполнения, когда электронная таблица будет сохранена. Код должен принимать значения из электронной таблицы и записывать их в определенное поле в таблице базы данных (INSERT INTO или UPDATE sql statements).
- Каков самый простой способ реализовать это (без необходимости устанавливать что-либо на всех компьютерах сотрудника, т. Е. Работать с этой таблицей как разработанной)?
- Мне нужно получить эту информацию для обработки в электронной таблице управления (т.е. импортировать последнюю информацию, полученную из таблиц базы данных MySQL). Что мне нужно сделать (я могу использовать VBA здесь) – Statement, такой как Select * from table_timesheets.
- Без компрометации привилегированной информации (например, расходов на зарплату) мне нужно, чтобы многие сотрудники / руководители проектов рассматривали ценность своих отдельных проектов в новой электронной таблице. (Я думаю, если я пойму пункт 3, я смогу сделать это).
Информация:
Версия MySQL: 5.1.73. База данных будет размещаться на локальном сетевом сервере на компьютере под управлением Windows. Внутренний IP-адрес сети фиксирован.
Любые предложения, пожалуйста.
Solutions Collecting From Web of "Подключение Excel к MySQL и SQLExecute для нескольких пользователей"
excel.bilee.com
Excel - Обучение - Чтиво
Не редко в работе нам может понадобится создать сводную таблицу в Excel на основе данных хранящихся в базе данных MySQL. Сделать это на самом деле намного проще чем скорее всего Вам изначально показалось.
Первое, что вам необходимо сделать для того, что бы связать Excel с MySQL это скачать и установить MySQL Connector, выберите ту версию коннектора с той разрядностью которой соответствует установленной на вашем ПК Excel, не путайте не с разрядностью вашей ОС, а именно с разрядностью Excel как правило вам понадобится 32 разрядный connector поэтому советую изначально установить именно его, далее в статье я расскажу как понять что вы выбрали коннектор не той разрядности, скачать егоконнектор можно тут.
Далее существует 2 способа как связать Excel и MySQL:
1. С помощью надостройки для Excel Power Query, скачать её можно с официального сайта пройдя по этой ссылке.
2. С помощью созданного источника данных ODBC.
1. Как подключить Excel к MySQL с помощью надстройки Power Query
1.1. Скачайте и установите надстройку PowerQuery.
1.2 Включите надстройку PowerQuery если её не видно при запуске Excel, для этого зайдите Файл - Параметры - Надстройки - Управление - Надстройки COM - Перейти - Поставьте галочку возле надстройки Microsoft Power Query for Excel - жмём OK
1.3 Далее идём во вкладку PowerQuery , группа "получение внешних данных" - из базы данных - Из базы данных MySQL
1.4 Введите все необходимые запрашиваемые данные
Сервер - Впишите адресс сервера
База данных - Тут необходимо указать таблицы из какой базы данных вы хотите в дальнейшем загрузить на лист Excel или в модель данных.
Инструкция SQL - Открыв это дополнительное поле вы можете написать MySQL запрос, результат выполнения которого вы импортируете либо на лист Excel, либо в модель данных рабочей книги.
1.5 Жмём ОК, и заполняем информацию о имени пользователя и пароль
Если ваши авторизационные данные Windows различаются с авторизационными данными в MySQL базе, выберите в меню слева "База данных" и введите имя пользователя и пароль, после чего жмите Сохранить.
1.6 После чего в меню справа появится навигатор по таблицам находящимся в указанной ранее вами базе данных, нажав правой кнопкой мыши на любой из таблиц вы можете выбрать пункт меню "загрузить в", после чего вам в новом диалоговом окно предоставится возможность выбрать загрузить таблицу на лист Excel либо в модель данных.
Либо если вы настраивали подключение и указали какой либо запрос в поле Инструкция SQL, то откроется диалоговое окно работы с результатами запроса, в котором вы можете группировать результат запроса, удалять либо добавлять столбцы и т.д.
1.7 После того как вы загрузили хотя бы одну из таблиц в модель данных, у вас появляется возможность создать сводную таблицу на основе загруженной вами из MySQL таблицы, или результата запроса. Для этого зайдите на вкладку "Вставка", выберите "Сводная таблица" в группе "Таблицы".
1.8 В диалоговом окне "Создание сводной таблицы" переставьте переключатель "Выберите данные для анализа" в режим "Использовать внешний источник данных", после чего нажмите кнопку "Выбрать подключение"
1.9. В открывшимся диалоговом окне "Существующие подключения" выберите в разделе "Подключения в этой книге" появится Ваш запрос который будет обозначен "Power Query - Имя таблицы или созданного вами запроса"
1.10 Жмём "Открыть" после чего будет создана сводная таблица в которой будут присутствовать все поля которые есть в результате вашего запроса или таблице MySQL с которой вы связали сводную таблицу.
2. Как подключить Excel к MySQL с помощью источника данных ODBC
2ой способ немного запутанней и труднее первого, ну рассказать о нём тем не менее стоит.
2.1 После того как вы установили MySQL Connector необходимо создать источник данных ODBC, для этого если у вы скачали 32 разрядный коннектор и у вас 32 разрядная операционная система вам необходимо пройти меню Пуск - Панель управления - Администрирование - Источник данных (ODBC), либо если у вас 64 разрядная операционная система и вы установили 32 разрядный коннектор Вам необходимо пройти по этому адресу %windir%\SysWOW64\odbcad32.exe (советую ярлык сохранить он вам ещё понадобится). В случае если у вас 64 разрядная ОС и вы установили 64 разрядный коннектор то поступите по аналогии как и в случае с 32 разрядной ОС и 32 разрядным коннектором, а именно пройдите меню Пуск - Панель управления - Администрирование - Источник данных (ODBC).
2.2 В открывшемся диалоговом окне "Администратор источников данных ODBC" открываем вкладку "Пользовательский DSN" и жмём кнопку Добавить.
2.3 Далее появится список всех установленных ODBC драйверов, нам необходимо найти "MySQL ODBC Unicode driver" и выбрать его
2.4 Заполняем информацию для авторизации:
2.5 Далее нам необходимо в любой папке, можете создать папку "Подключения ODBC" зайти в неё и создать там обычный текстовый документ после чего его надо переименовать что бы в конце было .udl т.е. нам надо поменять расширение с .txt на .udl
2.6 Открываем созданный нами UDL файл, идём на вкладку "Поставщик данных" и выбираем там "Microsoft OLE DB Provider for ODBC drivers"
2.7 Переключаемся на вкладку "Соединение" , в пункте 1.Источник данных выбираем созданный ранее нами ODBC источник данных:
2.8 Далее вводим учётные данные Имя пользователя/Пароль, выбираем нужную базу данных в поле "Начальный каталог" и жмём ОК.
2.9 Открываем Excel идём на вкладку "Вставка" создаём новую сводную таблицу, в пункте "выберите данные для анализа" ставим переключатель на "использовать внешний источник данных", жмём выбрать подключение.
2.10 В открывшемся диалоговом окно жмём "Найти другие"
2.11 Выбираем созданный нами UDL файл.
2.12 Всё подключение установлено , вам остаётся выбрать таблицу изз базы данных MySQL на основе которой вы планируете строить сводную таблицу и Нажать ОК.
2.13 Если вы хотите получить сводную не на основе какой либо таблицы, а на основе результата какого либо запроса нажмите на любой участок созданной только что сводной таблицы на основе таблицы из базы данных MySQL и перейдите на вкладу анализ, в группе данные откройте контекстное меню источник данных и выберите там свойства подключения.
2.14 В диалоговом окне свойства подключения существует 2 вкладки, "использование" на которой вы можете настроить автоматическое обновление информации из базы MySQL, а на вкладке "Оределение" вы можете изменить тип команды с "Таблица" на "SQL" и в поле текст команды написать любой MySQL запрос к выбранной в UDL файле базе данных.
Надеюсь статья окажется полезной для Вас.
my-office-life.narod.ru
mysql - Подключение 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 по убыванию из 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, то он работает отлично
я действительно нужен кто-то, чтобы ответить на этот вопрос, я не забочусь, если у вас есть подозрение, или не совсем уверен, я буду стараться какое-либо решение
coredump.su
Подключение к удаленной базе данных sql с использованием excel MS Excel онлайн
Существует несколько причин, по которым вы не можете подключиться к вашему SQL Server:
A) Он не допускает удаленных соединений
B) Существует брандмауэр или что-то еще, что позволяет избежать удаленных подключений к компьютеру
C) У вас нет службы SQL Browser
Действия по устранению неполадок:
1) На удаленном компьютере откройте cmd и запустите ping win2k8-01 Вы должны получить ответы со своего компьютера. если нет, есть проблема с подключением к сети
2) Убедитесь, что на вашем компьютере запущена служба «Служба SQL-браузера» («Службы», «Администрирование», «Панель управления»). Если этот тип запуска не задан как автоматический и не запускается. Это позволяет удаленным компьютерам получать информацию о доступных экземплярах и о том, как подключиться к ним. Если есть сомнения, посмотрите здесь
3) Убедитесь, что TCP / IP включен. Если не включить его Как включить протокол TCP / IP для экземпляра базы данных
4) Убедитесь, что ваш сервер разрешает удаленные подключения. Для этого откройте SSMS, подключитесь к своему серверу, щелкните правой кнопкой мыши, откройте «Свойства» и найдите «Разрешить удаленные подключения» на вкладке «Соединения». убедитесь, что этот параметр отмечен. Если есть сомнения, посмотрите здесь
5) Отключите брандмауэр на своем компьютере (брандмауэр Windows или любой сторонний брандмауэр, например, установленные антивирусным программным обеспечением)
Попробуйте подключиться, используя ту же конфигурацию соединения, которая работала на вашем локальном компьютере. Теперь он должен работать.
Если вы не можете подключиться с помощью Excel, попробуйте подключиться к другому инструменту с удаленного компьютера (вы можете установить SSMS на этом компьютере и попробовать подключиться).
Это должно сработать. если не сообщите мне, что терпит неудачу.
Если он работает, снова включите брандмауэр и повторите попытку подключения. Если вы не можете, вам нужно настроить брандмауэр, чтобы разрешать соединения SQL Server . Сделайте это и повторите попытку. Не забудьте разрешить соединения с браузером SQL Server на UDP-порту 1434, отдельно от порта экземпляра DB на TCP.
Синтаксис для подключения через excel <SERVERNAME OR IP>\INSTANCENAME (где INSTANCENAME не требуется, если вы установили экземпляр по умолчанию).
Это означает, что в Excel вы должны пойти Data – из других источников – SQL Server – введите IP только как то, к чему вы хотите подключиться. После этого вы получите опции для подключения к конкретной базе данных и таблице.
excel.bilee.com