Maison > Article > base de données > Comment établir une connexion à une base de données MySQL depuis Excel en utilisant VBA ?
Connexion à une base de données MySQL à l'aide de VBA
Tentative de connexion accéder à une base de données MySQL dans Excel à l'aide de VBA peut parfois s'avérer difficile. Dans votre cas, vous avez rencontré une erreur en essayant d'établir une connexion.
Pour réussir à vous connecter à une base de données MySQL à l'aide de VBA, suivez ces étapes :
<code class="vb">Sub ConnectDB() Dim oConn As ADODB.Connection Set oConn = New ADODB.Connection Dim str As String str = "DRIVER={MySQL ODBC 5.2.2 Driver};" & _ "SERVER=sql100.xtreemhost.com;" & _ "PORT=3306" & _ "DATABASE=xth_9595110_MyNotes;" & _ "UID=xth_9595110;" & _ "PWD=myPassword;" & _ "Option=3" ' Open the connection oConn.Open str End Sub</code>
Récupération des données depuis la base de données
Une fois que vous avez établi une connexion, vous pouvez récupérer les données de la base de données à l'aide d'un objet ADODB.Recordset. Voici comment :
<code class="vb">Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset ' Execute a query sql = "SELECT * FROM ComputingNotesTable" rs.Open sql, oConn, adOpenDynamic, adLockOptimistic ' Retrieve the data Do Until rs.EOF Range("A1").Select ActiveCell = rs.Fields("Headings") rs.MoveNext Loop ' Clean up rs.Close oConn.Close Set oConn = Nothing Set rs = Nothing</code>
Comparaison avec PHP
Vous avez mentionné que vous avez réussi à vous connecter à MySQL en utilisant PHP. En PHP, vous avez utilisé la fonction mysql_connect. Cependant, en VBA, nous utilisons l'objet ADODB.Connection pour établir une connexion.
La fonction mysql_connect est une fonction PHP native qui interagit directement avec l'extension MySQL. D'autre part, ADODB.Connection est un objet ActiveX qui fournit un moyen plus générique de se connecter à diverses bases de données, dont MySQL.
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!