Bonjour,
Après deux heures de recherche, je sèche. Je n'arrive pas à modifier la valeur d'un champ en modifiant une liste déroulante dans un formulaire.
1) J'avais réussi à faire un formulaire qui me permet de créer de nouveaux enregistrements dans ma table Access.
Pour cela j'ai utilisé ce code :
2) J'ai créé un second formulaire permettant d'afficher et modifier les champs de ma bdd. La plupart des champs sont des champs textes, donc c'est simple : en modifiant directement le champ texte, la modification est répercutée dans la bdd.
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
17 Set db = CurrentDb Set rsXXX = db.OpenRecordset("t_liste_XXX") DoCmd.SetWarnings False With rsXXX .AddNew !cat_XXX = cboXXXAjCategorie etc... .Update .Close End With Set rsXXX = Nothing Set db = Nothing DoCmd.SetWarnings True Form_f_ListXXX.Requery DoCmd.Close acForm, Me.Name Exit Sub
3) La où je bloque c'est pour un champs "Statut" pour lequel j'ai mis en place une liste déroulante avec des valeurs type : "En cours, en attente, terminé".
4) Ce que je souhaite faire, c'est dès lors que je modifie la liste déroulante, la nouvelle valeur vienne s'enregistrer dans la base de donnée.
Je pensais utiliser un control_Afterupdate et reprendre le même code que pour la création mais en utilisant "Edit" :
Quand je modifie le champ, cela m'affiche :
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
17
18
19
20
21
22
23
24
25
26 Dim db As DAO.Database Dim rsXXX As DAO.Recordset Set db = CurrentDb Set rsXXX = db.OpenRecordset("t_liste_XXX") DoCmd.SetWarnings False With rsXXX .Edit !statut_XXX = Modifiable44 .Update .Close End With Set rsXXX= Nothing Set db = Nothing DoCmd.SetWarnings True Form_f_ListXXX.Requery DoCmd.Close acForm, Me.Name Exit Sub End Sub
En fait, je pense que je n'arrive pas à dire en VBA de modifier sur la table XXX, le champ "statut" sur la ligne concernant l'enregistrement sur lequel est ouvert le formulaire de consultation.
J'espère avoir été clair et votre aide serait précieuse !
Merci
Partager