[access] ajout d'enregistrement requete

[Fermé]
Signaler
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
-
 Apprenti -
salut a tous

voila ce que je veut faire
a partir d'un formulaire ou je remplit des champ textes (nom,prenom,service) lorseque j'appui sur un bouton ajout que ca me creéé un enregistrement dans ma table utilisateur

voila mon code


Sql = "INSERT INTO Utilisateurs ( Nom, Prenom, Service )"
Sql = Sql & " VALUES (""" & Form_ajout!txtnom & """, """ & Form_ajout!txtprenom & """, """ & Form_ajout!lstservice & """)"

DoCmd.DeleteObject acQuery, "confirmationajout"
CurrentDb.CreateQueryDef "confirmationajout", Sql

Set Qry = CurrentDb.QueryDefs("confirmationajout")


jusqu'ici ca marche bien
ca la creer et quand je lance la requete comfirmajout que j'ai creer si dessus ca me créé un enregistrement
Mais quand je veut la lancer automatiquement dans VBa

Set rs = Qry.OpenRecordset

Set Qry = Nothing
Set rs = Nothing

la il ni veut pas

croyez vous que cela vienne des messages d'access
genre "vous etes sur le point d'ajouter un enregistrement etes vous sur? "
Si oui dite moi comment les annulé

Merci a ceux qui m'on lu
et merci d'avance pour votre aide

8 réponses

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103
Salut,

il y a beaucoup mieux pour ajouter un record.
Dim MaTable as RecordSet
Set MaTable = CurrentDb.OpenRecordset("Utiisateurs", dbOpenDynaset)
On Error Resume Next
With MaTable
    .AddNew
    !Nom = Form_ajout!txtnom
    !Prenom = Form_ajout!txtprenom
    !Service = Form_ajout!lstservice
    .Update
    .Requery
End With
If Err.Number <> 0 Then
    MsgBox Err.Description, , Err.Number
    GoTo Fin:
End If
MaTable.Close
Set MaTable = Nothing
Fin:
End Sub
Ca te fait pas de vilains messages d'ajout (comme ça, tu peux les gérer toi-même...)
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210
Merci Blux g choisi la methode bourin ca marche comme il faut
merci de ton aide
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210
salut

Merci c'est cool mais il y a un petit probleme il me dit qu'il y a une incompatibilité de type et il me surligne cette ligne

Set MaTable = CurrentDb.OpenRecordset("Utilisateurs", dbOpenDynaset)
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103
Soit il te manque une référence à DAO (menu outils/références dans la fenêtre de code, cocher les 'manquantes'), soit tu ne mets pas de type à matable (Dim MaTable), ça devrait passer, mais c'est plus bourrin !
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103
Regarde quand même les histoires de références, un jour ou l'autre, tu vas tomber dessus sans contournement possible...
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210
oui je m'en suis deja servi mais depuis le debut je ne declare aucune variables je c que ce n'est pas bien mais vu que je ne voi pas la difference
en tout cas merci de tes conseils
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210 >
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

ca continu a planter il tourne en boucle donc la solution que j'ai choisi c'est un
goto Fin:
a la fin du if
et j'ai mis le
fin:
avant MaTable=nothing
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103 >
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

Tu peux me coller le code ici ?
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210 >
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

Set MaTable = CurrentDb.OpenRecordset("Utilisateurs", dbOpenDynaset)
MaTable.MoveFirst
While Not MaTable.EOF
If MaTable!Nom = Form_Modification!txtnomu Then
MaTable.Edit
MaTable!Nom = Form_Modification!txtnouveaunom
MaTable.Update
MaTable.Requery
MsgBox ("operation reussi")
GoTo Fin:
End If
MaTable.MoveNext
Wend
Fin:
MaTable.Close
Set MaTable = Nothing
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103 >
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

Tu peux faire plus propre avec DO...LOOP qui te permet grâce à un EXIT DO de sortir de la boucle avant la vérification de la condition...
Do while Not matable.eof
    if MaTable!Nom = Form_Modification!txtnomu Then
        MaTable.Edit
        MaTable!Nom = Form_Modification!txtnouveaunom
        MaTable.Update
        MaTable.Requery
        MsgBox ("operation reussi")
        exit do
    endif
    matable.movenext
Loop
MaTable.Close
Set MaTable = Nothing
Messages postés
353
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
9 février 2016
210 >
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020

ok je vais faire ca merci
Messages postés
1
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
4 juillet 2007

bonjour,

j ai un probleme avec ACCESS. en faite j ai une table avec des codepart identiques pour des dates différentes.
Je voudrais sélectionner pour chaque codepart la derniere date.

c urgent svp
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 103
Salut,

merci de créer un nouveau message, celui-ci étant hors sujet pour ce post...
Bonjour,
Voulez-vous m'aider à ajouter des enregistrements sur ma base de données !