Bonjour,
A partir d'un formulaire sous Access 2002 j'exécute une requête.
Je voudrais afficher un message de type "Etes-vous sûr de vouloir supprimer 10 enregistrements ?".
Pour cela j'ai besoin de connaître le nombre d'enregistrement(s) concerné(s) afin d'afficher le message.
J'ai à mon avis deux solutions :
La première (trouvée sur le forum) :
J'ai par ailleurs dû supprimer les "&" pour que ça fonctionne (je ne sais d'ailleurs pas à quoi ça sert).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Const REQUETE As String = "DELETE inventaire.* FROM inventaire WHERE (((inventaire.num_inv)=Formulaires!Inventaire!suppr_materiel_liste));" Dim q As DAO.QueryDef Dim n As Long DBEngine.BeginTrans Set q = CurrentDb.QueryDefs(REQUETE) q.Execute If MsgBox("Vous allez insérer " & q.RecordsAffected & _ " nouveaux enregistrements." & vbCrLf & _ "Etes vous sûr de vouloir continuer ?", vbYesNo + vbQuestion, "Insertion") = vbYes Then DBEngine.CommitTrans Else DBEngine.Rollback End If
Cela me donne ensuite l'erreur suivante sur la ligne "Set q = CurrentDb.QueryDefs(REQUETE)" :
Erreur d'exécution '3265': Elément non trouvé dans cette collection;
Après avoir rajouter 2 références (Microsoft ActiveX Data Objects 1.0 Library et Microsoft DAO 3.6 Object Library je crois) j'ai toujours cette erreur.
La seconde solution serait d'utiliser une requête de typeCette requête fonctionne mais je n'arrive pas à utiliser son résultat pour ensuite l'insérer dans une MsgBox.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part SELECT count(inventaire.num_inv) AS Expr1 FROM inventaire WHERE (((inventaire.num_inv)=Formulaires!Inventaire!suppr_materiel_liste));
Merci par avance de votre aide.
Je reste à votre disposition si vous souhaitez plus d’infos.
Julien
Partager