Bonjour,
j'utilise quotidiennement excel et vba pour extraire des données de ma base de données.
Hier, je veux le faire sur un autre PC et impossible de me souvenir comment j'avais fait pour activer l'accès. #TeamBoulet.
J'ai bien activé dans l'editeur VBA :Outils--> références
Il me reste un truc tout con à faire mais impossible de m'en souvenir.
Quelqu'un pour me rafraichir la mémoire?
Je ne crois pas qu'il faille passer par les pilote ODBC mais j'ai un doute.
Pour la bonne forme. voici la function que j'utilise.
Merci d'avance pour votre aide.
Nicolas
j'utilise quotidiennement excel et vba pour extraire des données de ma base de données.
Hier, je veux le faire sur un autre PC et impossible de me souvenir comment j'avais fait pour activer l'accès. #TeamBoulet.
J'ai bien activé dans l'editeur VBA :Outils--> références
Il me reste un truc tout con à faire mais impossible de m'en souvenir.
Quelqu'un pour me rafraichir la mémoire?
Je ne crois pas qu'il faille passer par les pilote ODBC mais j'ai un doute.
Pour la bonne forme. voici la function que j'utilise.
VB:
Function requete_MYSQL(nom_feuille_la_requete, cellule_la_requete, nom_feuille_destination_resultat, cellule_destination_resultat)
' cellule_destination_resultat =non si on ne veut pas coller le resultat de la requete
'x = Application.Run("PERSONAL.XLAM!requete_MYSQL", "REQUETES", "B2", "BASE", "A11")
'MsgBox (nom_feuille_la_requete)
'MsgBox (cellule_la_requete)
'MsgBox (nom_feuille_destination_resultat)
'MsgBox (cellule_destination_resultat)
' REQUETE MYSQL
Dim Password As String
Dim SQLStr As String
Dim Server_Name As String
Dim User_ID As String
Dim Database_Name As String
Dim table_name As String
Set Rs = CreateObject("ADODB.Recordset")
Server_Name = "12.23.45.12"
Database_Name = "ma_base"
User_ID = "mon_id"
Password = "mon_password"
Set cn = CreateObject("ADODB.Connection")
cn.Open "Driver={MySQL ODBC 3.51 Driver};Server=" & _
Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"
SQLStr = Sheets(nom_feuille_la_requete).Range(cellule_la_requete).Value
Rs.Open SQLStr, cn, adOpenStatic
'je colle le resultat dans la bonne cellule
If nom_feuille_destination_resultat <> "non" Then
Sheets(nom_feuille_destination_resultat).Range(cellule_destination_resultat).CopyFromRecordset Rs
cn.Close
Else
cn.Close
End If
End Function
Merci d'avance pour votre aide.
Nicolas