2010-11-29 22 views
1

Je cherche un exemple de comment interroger une base de données MySQL en utilisant Excel VBA.Excel VBA: interroger une base de données MySQL

Je suis en mesure d'utiliser Data \ provenant d'autres sources \ De Microsoft Query pour importer des données de la DB, mais ce que je suis en fait à la recherche est une façon de ne pas importer une feuille de calcul directement, mais plutôt à une structure de données dans VBA pour plus de manipulation avant que je produise le résultat à la feuille de calcul. Comment puis-je faire ceci?

+0

Comme dans: http://stackoverflow.com/questions/2821718/excel-vba-écriture-à-mysql-base de données/2821911 # 2821911? – Fionnuala

+0

@Remou - pas tout à fait, je cherchais un exemple comment interroger et recevoir le résultat – Jonathan

Répondre

4

pour se connecter:

conMySQL.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=" & server & ";" & " DATABASE=" & database & ";" & "UID=" & login_user & ";PWD=" & password & "; OPTION=3; PORT=" & port & ";Connect Timeout=20;" 

    'open the connection 
    conMySQL.Open 

puis à la recherche:

strSQL = "SELECT x FROM some_table" 
MySQL.Query (strSQL) 

With rsTemporary 
     Do Until .EOF 
      recordCount = recordCount + 1 
      some_variable = ![supcode] 
      rsTemporary.MoveNext 
     Loop 
End With 
     MySQL.closeCon 
0

Cela fonctionne pour moi:

Set conn = New ADODB.Connection 
conn.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver}" _ 
& ";SERVER=" & server_name _ 
& ";DATABASE=" & database_name _ 
& ";UID=" & user_id _ 
& ";PWD=" & password _ 
& ";OPTION=3" ' 

Set rs1 = New ADODB.Recordset 
sqlstr = "SELECT * FROM `table1` WHERE `ID`=" & ID & ";" 
rs1.Open sqlstr, conn, adOpenStatic 
With Worksheets("Main").Cells(1, 1) 
.ClearContents 
.CopyFromRecordset rs1 
End With 
rs1.Close 
Set rs1 = Nothing