Excel VBA: запись в базу данных MySQL - PullRequest
2 голосов

Я хотел бы написать макрос в Excel, который будет записывать в базу данных MySQL Может кто-нибудь, пожалуйста, начните меня с этого?

Ответы [ 2 ]

7 голосов
/ 12 мая 2010

Вы можете подключиться к MySQL с помощью строки подключения и ADO:

''http://support.microsoft.com/kb/246335
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

strCon = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=MyDB;" _
& "User=root;Password=pw;Option=3;"

cn.Open strCon

Вы также можете использовать DSN с подключением к Excel с помощью драйвера Jet:

Dim cn As ADODB.Connection

''Not the best way to get the name, just convenient for notes
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")

''For this to work, you must create a DSN and use the name in place of 
''DSNName
strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " _
& "Select AnyField As NameOfMySQLField FROM [Sheet1$];"

cn.Execute strSQL
2 голосов
/ 12 мая 2010

Запись в базу данных mysql ничем не отличается от записи в любую другую базу данных.

Вы бы создали объект ADODB.Connection. Откройте его с помощью соответствующей строки подключения и используйтеметод .Execute (или ADODB.Command) для выполнения sql.

См. http://msdn.microsoft.com/en-us/library/ms807027.aspx для получения дополнительной информации.

Вам необходимо установить драйвер доступа mysql (ODBC или OLEDB) и ссылаться на объекты данных Microsoft ActiveX 2.8 из вашего проекта vba.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...