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 :
1 |
DoCmd.RunSQL "DELETE * FROM [Une table];" |
La méthode Execute de l’objet DAO.Database
Exemple :
1 |
CurrentDb.Execute "DELETE * FROM [Une table];" |
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 ligneDoCmd.SetWarnings False
… ou utilisez la méthodeExecute
!
Dans le premier cas, pensez à placer unDoCmd.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’unSELECT
,RunSQL
n’est pas la commande appropriée ! Passez plutôt par des Recordsets DAO ou ADO.
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… 😉
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
Christ > Il suffirait d’ajouter la ligne suivante avant de déclencher la suppression :
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 ?