Как получить MS EXCEL для подключения к базе данных MYSQL. Excel подключение к mysql
Обмен данными между Excel и MySQL
Вряд ли мы откроем секрет, если скажем, что MySQL является на сегодняшний день одной из наиболее доступных реляционных СУБД. Она бесплатна, стабильна в работе и ко всему прочему отличается неплохим быстродействием. Не случайно эта система управления базами данных пользуется огромной популярностью у разработчиков веб-приложений, построенных на основе клиент-серверной технологии.Конечно, время никогда не проходит даром, в том числе и для MySQL. Эволюционировав до 5й версии, она значительно возмужала и обзавелась отсутствующими ранее функциями (поддержкой триггеров, вложенных запросов и др.), но… "У "Жигулей" тоже четыре колеса, фары, руль и прочие атрибуты, но это не Mercedes. Точно так же и MySQL — это не Oracle", — процитировал мне знакомый программист, пытаясь объяснить разницу между существующими платформами для хранения данных. Глубокомысленное высказывание, ничего не скажешь. Ладно, долой философию, займемся делом, а именно — обменом данных в связке "Microsoft Excel — MySQL".
Матерым программистам баз данных наверняка по зубам эта операция, но мы облегчим свою участь при помощи специальной надстройки к табличному редактору Excel с длиннющим названием Excel to MySQL Import, Export & Convert 1.1 от компании Sobolsoft. Размер утилиты — 5,7 Мб, стоимость — 20 долларов США.
Установка приложения проходит без шума и пыли, единственное, необходимо понизить уровень безопасности Excel (Сервис -> Макрос -> Безопасность), разрешив ему выполнять макросы.
Перед началом работы нужно подключить базу данных при помощи специального мастера Setup MySQL Database Connection и установить соединение. А далее все как по маслу: при желании можно экспортировать выбранные ячейки в таблицу MySQL, либо, напротив, импортировать нужную информацию из базы данных. Естественно, без хотя бы минимальных знаний основ языка структурированных запросов SQL здесь не обойтись, но это не страшно — ведь документации навалом.
Что до области применения этой утилитки от Sobolsoft, то она воистину многогранна, начиная от использования в качестве удобного инструмента для операторов баз данных и заканчивая эксплуатацией в собственных программных разработках. На этой оптимистической ноте и поставим точку в нашей маленькой заметке.
www.internet-technologies.ru
vba - Подключение Excel к MySQL и SQLExecute для нескольких пользователей
Мне нужно разработать таблицу 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-адрес сети фиксирован.
Любые предложения, пожалуйста.
задан Ryno Nel 02 дек. '16 в 17:11 источник поделитьсяvba - Открытое подключение к MySQL из VBA Excel 2007
возможно, это может помочь вам/другим:
Добавьте эту ссылку в свой проект: Объект данных Microsoft ActiveX 2 (или любой более высокий вариант, который у вас есть)
Бросьте этот код в модуль и сохраните его: отредактируйте данные сервера в этом модуле.
'--------------------------------------------------------------------------------------- ' Module : Mod_Connection ' Author : Krish km, xkrishx.wordpress.com ' Date : 27/08/2014 ' Purpose : use this for build mysql connectin string. ' Declaration: © Krish KM, 2014. ' : Free to modify and re-use as long as a clear credit is made about the orgin of the code and the link above ' : This script is distributed in the hope that it will be useful, ' : but WITHOUT ANY WARRANTY; without even the implied warranty of ' : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ' : GNU General Public License for more details. '--------------------------------------------------------------------------------------- Option Explicit Public ConnectionString As String Private Const HKEY_LOCAL_MACHINE = &H80000002 Public Function GET_CURRENT_DRIVER() As String '--------------------------------------------------------------------------------------- ' Procedure : GET_CURRENT_DRIVER ' Author : Krish km ' Date : 27/08/2014 ' Purpose : This function returns available mysql odbc drivers found in the registry. You could search by MySQL ODBC and get the first result ' : but I prefer prioritize the drivers i would like to yield first '--------------------------------------------------------------------------------------- ' If FIND_ODBC_DRIVER(GET_ODBC_DRIVER_NAMES, "MySQL ODBC 5.2 Unicode Driver") <> "" Then GET_CURRENT_DRIVER = "MySQL ODBC 5.2 Unicode Driver" ElseIf FIND_ODBC_DRIVER(GET_ODBC_DRIVER_NAMES, "MySQL ODBC 5.2w Driver") <> "" Then GET_CURRENT_DRIVER = "MySQL ODBC 5.2w Driver" Else GET_CURRENT_DRIVER = FIND_ODBC_DRIVER(GET_ODBC_DRIVER_NAMES, "MySQL ODBC") End If End Function Public Function GET_CONNECTION_STRING() As String '--------------------------------------------------------------------------------------- ' Procedure : GET_CONNECTION_STRING ' Author : Krish KM ' Date : 27/08/2014 ' Purpose : Returns MySQL connection string '--------------------------------------------------------------------------------------- ' If Not ConnectionString = vbNullString Then GET_CONNECTION_STRING = ConnectionString Else Dim Driver As String Dim mDatabase As String Dim mServer As String Dim mUser As String Dim mPassword As String Dim mPort As Integer mDatabase = "" ' DB name mServer = "" ' Server name mUser = "" ' DB user name mPassword = "" ' DB user password mPort = 3306 ' DB port Driver = GET_CURRENT_DRIVER If Driver = "" Then Err.Raise 1, Err.Source, "MYSQL ODBC drivers are missing" Exit Function End If ConnectionString = "DRIVER={" & Driver & "};PORT=" & mPort & ";DATABASE=" & mDatabase & ";SERVER={" & mServer & "};UID=" & mUser & ";PWD={" & mPassword & "};" GET_CONNECTION_STRING = ConnectionString End If End Function Public Function GET_ODBC_DRIVER_NAMES() '--------------------------------------------------------------------------------------- ' Procedure : GET_ODBC_DRIVER_NAMES ' Author : Krish KM ' Date : 27/08/2014 ' Purpose : Checks in the registry for any odbc driver signatures and returns the collection '--------------------------------------------------------------------------------------- ' Dim strComputer As String, strKeyPath As String Dim objRegistry As Object, arrValueNames, arrValueTypes strComputer = "." strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers" Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes GET_ODBC_DRIVER_NAMES = arrValueNames End Function Public Function FIND_ODBC_DRIVER(ByVal iArr, ByVal sValue) As String '--------------------------------------------------------------------------------------- ' Procedure : FIND_ODBC_DRIVER ' Author : Krish KM ' Date : 27/08/2014 ' Purpose : Simple array function to check if a specific value exists. if yes return the value if not return empty string '--------------------------------------------------------------------------------------- ' FIND_ODBC_DRIVER = "" Dim iValue As Variant For Each iValue In iArr If iValue = sValue Then FIND_ODBC_DRIVER = iValue Exit Function End If Next End FunctionНадеюсь, это поможет и понравится :)
Криш К.М.
qaru.site
sql - Как получить MS EXCEL для подключения к базе данных MYSQL
Я НАС НАЙТИ РЕШЕНИЕ...
Престижность к HongTAT за то, что я держу меня на правильном пути....
(Несмотря на то, что я сделал все начальные материалы, которые вы разместили, прежде чем я действительно разместил вопрос, The Act of you Posting it, Got me Посмотрев на него немного глубже...
Одна вещь привела к другой, и я нашел решение... Спасибо
я подозреваю, что какая-то проблема несовместимости, должно быть, была виновата здесь, я заметил, что Power Query 64 бит не будет установлен на моей 64-битной системе
вместо этого установщик Power Query предоставил ошибку, которая просто указала на эффект:
поскольку 32-разрядный офис не может установить 64-битный запрос мощности
но я установил Connector/ODBC и Connector/Net как 64bit
возможно, в этой конфигурации было что-то, что не скреплялось друг с другом.
Кроме того, Aparently "бит-ness" представляет собой запутанный термин, который должен означать (убедитесь, что этот набор команд бит из ODBC-коннектора соответствует набору бит-команд Power Query в Excel)
На самом деле вам не нужен Power Query или Visual Studio, если на то пошло
Однако я могу видеть преимущество запроса мощности на этом этапе
ЧТО Я СДЕЛАЛ...
Я удалил все следы Microsoft Visual Studio из "Установка и удаление программ"
Я удалил все трассировки Visual C++, распространяемые с помощью "Установка и удаление программ"
Я удалил запрос мощности с помощью "Установка и удаление программ"
я Удаленный соединитель MYSQL/ODBC из программы "Установка и удаление программ"
я Удаленный соединитель/сеть MYSQL из программы "Установка и удаление программ"
я оставил установку WAMP и MYSQL Intact
я проверил Windows Update
я перезапустил систему
Затем я загрузил следующее и установил его
http://dev.mysql.com/downloads/file.php?id=450946
Теперь.. Хотя эта установка пакета - это то же самое, что установка 1 на 1
я обнаружил, что, выполняя "ТАМОЖЕННУЮ УСТАНОВКУ",
и установка всех продуктов ЗА ИСКЛЮЧЕНИЕМ СЕРИИ MYSQL
я смог сразу подключиться через соединитель/сеть к базе данных MYSQL
ПОСЛЕДНИЕ Я установил Power Query для Excel (так как это было всем началом)
и на этот раз он сразу подключился и отлично работал
имя сервера было localhost
как я подозревал
и учетные данные были правильными, поскольку я подозревал
единственное, что я должен был установить без шифрования пароля
я получил сообщение о том, что что-то вроде My Version of Office не поддерживало шифрование или что-то в этом роде
но я подключен без шифрования, и он отлично работал
ЗАДАЧА РЕШЕНА
Я ТЕПЕРЬ ДЕЙСТВУЮТ ЭТО ВОПРОС, ЧТОБЫ РЕШЕНО
THANKYOU TO HongTat
qaru.site
Подключение 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] Честно пока даже не очень представляю как он выводит эти данные на листок. Товарищи, направьте слепого на путь истинный пожалуйста))qa-help.ru
Подключение Excel к SQL Server
Для обработки данных в Excel требуется сначала получить сами данные. Часто такая информация находится во внешних источниках, а именно базах данных. В этой статье описывается подключение электронных таблиц к БД MS SQL Server.
На вкладке «Данные» имеется область «Получение внешних данных» на которой необходимо кликнуть по кнопке «Из других источников». Раскроется список источников, к которым можно осуществить подключение. В этом списке выберите пункт «С сервера SQL Server».
Теперь на экране появилось окно мастера подключения к данным. Изначально требуется указать имя сервера и учетные сведения для подключения (если Вы их не знаете, то обратитесь к администратору БД).
После заполнения формы нажмите кнопку «Далее», чтобы перейти к выбору базы данных.
Здесь же можно выбрать таблицы, из которых будут грузиться данные, или же снять галочку с пункта «Подключение к определенной таблице».
Нажмите кнопку «Далее», чтобы задать имя файла подключения и описание, чтобы в дальнейшем было проще найти данный файл.
Нажав кнопку «Готово», Вам будет предложено произвести импорт данных с сервера (если в мастере подключений Вами не была выбрана таблица, то сначала ее придется выбрать).
В текущем окне можно выбрать место и способ представления импортируемых данных: таблица, сводная таблица, сводная диаграмма или пропустить импорт, выбрав пункт «Только создать подключение».
SQL-запрос
По умолчанию, при импорте из SQL Server, Excel выгружает всю таблицу. Можно изменить выборку, указав SQL-запрос.
Для этого во время импорта данных (предыдущий рисунок) необходимо кликнуть по кнопке «Свойства», если подключение создается впервые, либо, если файл подключения уже был добавлен к книге, на вкладке «Данные» в области «Получение внешних данных» кликнуть по кнопке «Подключения», выбрать нужное из списка и открыть его свойства.
В свойствах подключения на вкладке «Определение» в поле «Тип команды» поменяйте значение на «SQL», а в поле «Текст команды» введите SQL-код и нажмите «ОК».
Теперь, чтобы получить данные с помощью нового подключения, достаточно вызвать его из существующих подключений на вкладке «Данные» в области «Получение внешних данных». Дальнейшая процедура импорта аналогична рассмотренному выше.
webhamster.ru
sql - Подключение Excel к обновлению Mysql ПРОБЛЕМА
Я подключаюсь к таблице 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проблема заключается в том, что единственным полем, которое обновляется, является полем инструментов!
здесь я 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, тогда она отлично работает
Мне действительно нужно, чтобы кто-то ответил на этот вопрос, я не забочусь, если у вас есть подозрение или не совсем точно, я попробую любое решение
источник поделитьсяqaru.site