Opération selon sélection dans une liste (Access)
Résolu
ButteDuLac
Messages postés
495
Date d'inscription
Statut
Membre
Dernière intervention
-
ButteDuLac Messages postés 495 Date d'inscription Statut Membre Dernière intervention -
ButteDuLac Messages postés 495 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sous Access 2010 :
J'ai dans un formulaire (Saisie_Acc) un champ [Type_anest] avec liste de choix. On peut cocher plusieurs choix.
J'ai un autre champ [Epidurale] booléen. J'aimerais que si dans le premier champ, telle valeur est sélectionnée, le deuxième champ soit coché (-1), et sinon décoché (o).
Je n'arrive pas à le faire dans les macro Access, car les champs avec listes de choix ne peuvent pas y être utilisées dans le générateur d'expression. Je me demande si c'est possible sous VBA.
J'ai mis le code dans une private sub du formulaire, sub = Type_anest_AfterUpdate()
J'ai essayé :
Ainsi que :
Et enfin :
Mais ni l'un ni l'autre ne fonctionne.
J'aurais besoin de savoir :
1. Est-ce possible?
2. Si oui, comment???
Merci à l'avance!
Sous Access 2010 :
J'ai dans un formulaire (Saisie_Acc) un champ [Type_anest] avec liste de choix. On peut cocher plusieurs choix.
J'ai un autre champ [Epidurale] booléen. J'aimerais que si dans le premier champ, telle valeur est sélectionnée, le deuxième champ soit coché (-1), et sinon décoché (o).
Je n'arrive pas à le faire dans les macro Access, car les champs avec listes de choix ne peuvent pas y être utilisées dans le générateur d'expression. Je me demande si c'est possible sous VBA.
J'ai mis le code dans une private sub du formulaire, sub = Type_anest_AfterUpdate()
J'ai essayé :
If Me.Type_anest.value like "Épidurale" then
Me.Epidurale.Value=-1
Else Me.Epidurale.Value=0
End if
Ainsi que :
If Me.Type_anest.ItemsSelected Like "*" & "Épidurale" & "*" Then
Me.Epidurale.Value = -1
Else: Me.Epidurale.Value = 0
End If
Et enfin :
If Me.Type_anest.Value Like "*" & "Épidurale" & "*" Then
Me.Epidurale.Value = -1
Else: Me.Epidurale.Value = 0
End If
Mais ni l'un ni l'autre ne fonctionne.
J'aurais besoin de savoir :
1. Est-ce possible?
2. Si oui, comment???
Merci à l'avance!
A voir également:
- Opération selon sélection dans une liste (Access)
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Voir liste d'amis facebook - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
moi j'essaierais ceci:
moi j'essaierais ceci:
Me.Epidurale.Value = false For Each varItm In Me.Type_anest.ItemsSelected if instr(Me.Type_anest.ItemData(varItm),"Épidurale") >0 then Me.Epidurale.Value = true end if Next varItm
J'avais bien espoir que ça fonctionne, mais non!
J'avais trouvé, sur un autre site ( https://www.developpez.net/forums/d551510/logiciels/microsoft-office/access/vba-access/condition-genre-champ-contient-ca-existe/ ) une suggestion :
Mais je n'arrivais pas à l'appliquer à ma BDD. Je pensais que votre réponse était la bonne. Je l'ai essayée en VBA dans le formulaire concerné, au champ concerné :`
Essai 1 : Type_anest_AfterUpdate()
Essai 2 : Type_anest_Dirty(Cancel As Integer)
Qu'est-ce que je devrais faire et que je ne fais pas?
Étant donné qu'il y a seulement 6 types d'anesthésie, j'ai décidé de me créer 6 champs, et de mettre 6 cases à cocher (oui/non) dans mon formulaire. Ce ne sera pas plus long pour l'utilisateur... et pour moi, le champ « Épidurale » demeure le même dans mes requêtes, alors à bien y penser, ce sera beaucoup moins compliqué ainsi, puisque les autres types d'anesthésie ne sont pas pris en compte dans les rapports statistiques (ils ne sont là que pour info.)
Merci encore!