Exécuter une requête Action en VBA

Comment exécuter une requête Action (INSERT, UPDATE, DELETE) en Visual Basic ?

Soit une requête SQL du type : DELETE * FROM [Une table];
Pour exécuter cette requête en Visual Basic, 2 méthodes :

L’instruction DoCmd.RunSQL

Exemple :

La méthode Execute de l’objet DAO.Database

Exemple :

Notes

  • RunSQL provoque l’affichage classique de messages de confirmation (« Confirmez-vous la suppression de x enregistrements ? »). Pour éviter ces messages, précédez la commande de la ligne DoCmd.SetWarnings False… ou utilisez la méthode Execute !
    Dans le premier cas, pensez à placer un DoCmd.SetWarnings True après l’exécution de la requête.
  • Ces 2 techniques s’appliquent à des requêtes Action (UPDATE, INSERT, DELETE), mais pas à des requêtes Sélection (SELECT), qui elles renvoient un nombre de lignes à analyser.
    Si vous devez manipuler le résultat d’un SELECT, RunSQL n’est pas la commande appropriée ! Passez plutôt par des Recordsets DAO ou ADO.

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    YOU0199 > S’il s’agit d’une connexion à une base Access, ta date doit être au format #mm/jj/aaaa#. Les apostrophes ne sont pas valides pour une date Access (contrairement à d’autres moteurs). Comme tu es sous C#, utilise DatePicker1.Value.ToString() pour la conversion.

    PS : Pour ce qui est de l’urgence, il faut savoir relativiser. Ton urgence n’est pas forcément la mienne… 😉

  2. YOU0199 dit :

    s.v.p aide moi pour resoudre se probleme .
    le probleme consiste a inseret ce champ dans le base mais la deficulte et au niveau de l’insertion de champs Date Time Picker .
    il signiale qu’il a un erreur au niveau de la syntaxe insert into.

    MsgBox(« connexion reussie »)
    If TextBox1.Text <> «  » And TextBox2.Text <> «  » Then
    cnx.Open()
    cmd.CommandText = « INSERT INTO youssef(nom,prenom,etat,[Date (jjmmaaaa)]) values(‘ » + TextBox1.Text + « ‘,' » + TextBox2.Text + « ‘,' » + ComboBox1.Text + « ‘,' » & DateTimePicker1 .Value « ‘,); »
    cmd.ExecuteNonQuery()
    cnx.Close()
    TextBox1.Text = «  »
    TextBox2.Text = «  »
    merci………..aide mois.v.p urgent

  3. Hervé Inisan dit :

    Christ > Il suffirait d’ajouter la ligne suivante avant de déclencher la suppression :

  4. CHRIST dit :

    Salut , j ai réalisé une requête VBA qui supprime un élément d’une table . j’aimerais faire afficher une boite de dialogue pour la confirmation avant la suppression (  » Voulez-vous vraiment supprimer cet enregistrement ?  » Oui / Non). Comment faire ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *