EXCEL VBA, Requettes SQL vers BD

Résolu
shared Messages postés 117 Statut Membre -  
shared Messages postés 117 Statut Membre -
Bonjour,

Ce que je voudrai faire :
Je souhaite lancer des requettes SQL sur mon serveur depuis VBA

Mon code:
  
Sub exporter()
'connectin à la bd
Module2.connection
Dim LeSQL As String
LeSQL = "UPDATE conjecture SET txCroisPlasma = 20 WHERE annee = 2017"
DoCmd.OpenQuery LeSQL
End Sub


Ma question:
Ça ne fonctionne pas évidement, mais ma logique est-elle bonne?

Longue vie et prospérité financière à celui qui me répondra :)

2 réponses

  1. Thorak83 Messages postés 1140 Statut Membre 156
     
    Bonjour,

    Vous devez activer la librairie ADO dans l'éditeur Visual Basic.
    Faire ALT + F11
    Menu Outils/Référence et choisir "Microsoft ActiveX Data Objet x.x Library"

    Dim CnxSql As ADODB.Connection
    Dim LeSQL As String
    CnxSql.ConnectionString = "Provider=SQLOLEDB;Server=SNOM_DU_SERVEUR;Database=NOM_BASE_DE_DONNEE;Trusted_Connection=yes;"
    CnxSql.CursorLocation = adUseServer
    LeSQL = "UPDATE conjecture SET txCroisPlasma = 20 WHERE annee = 2017"
    CnxSql.Execute LeSQL


    Concernant la chaine de connection (ConnectionString), renseignez vous, selon le type de base de données, le type de connexion ..
    Voir la doc concernant ADO et VBA ici
    https://drq.developpez.com/vb/tutoriels/ADO/

    Cordialement
    0
  2. shared Messages postés 117 Statut Membre 5
     
    Bonsoir,

    j'avais déja inclu les bibliothèques, c'est la commande execute qu'il me manquait, cela fonctionne nikel. Voici la copie de mon code:

    Dim indice As Integer
    Dim LeSQL As String

    Set cnx = New ADODB.connection
    cnx.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;Database=leader;User=root;Password=;"
    cnx.Open

    LeSQL = "UPDATE conjecture SET année = 20"
    cnx.Execute LeSQL
    0