Boujour le forum,

Mon problème est que j'ai une zone de liste déroulant1 (Sous Ensemble), elle peut prendre comme valeur : 420-1, 420-2, 430-1, 430-2, 440, 450, 460 et 470.

Je voudrai que lorsque la liste déroulante1 vaut 430-1, ma liste déroulante2 (Référence) soit en fonction d'une requète ; et que si ma liste déroulante1 est différente de 430-1 alors ma liste déroulante2 ne soit plus en fonction de cette requète et que je puisse rentrer des valeur à l'intérieur.

Si SousEnsemble = 430-1 alors Référence est en fonction d'une requète sinon Référence est vierge (c'est l'utilisateur qui tape la valeur désiré).

Ce que j'ai essayé de faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Sous_Ensemble_AfterUpdate()
Dim critere As String
critere = Forms![F_Devis]![Sous Ensemble]  'variable contenant le critere choisi dans le contrôle Sous Ensemble
 
    If critere = "430-1" Then
        MsgBox "oki 430-1"
        'execution d 'une requete qui s'affiche dans le controle Référence
        Référence.RowSource = "R_Référence / Types"
        Référence.Requery
           End If
    Référence.Requery
End Sub
Si par exemple je choisis dans la liste1 430-1 et que je remplie mon formulaire et que je le modifie et que je lui mes dans la liste1 450 il ne m'actualise pas la liste2 et il me met un message d'erreur me disant:
Le moteur de base de données Microsoft Jet ne peut pas trouver d'enregistrement dans la table <T_Référence / Type> avec le champ <Référence> correspondant à la clé. (Erreur 3101)
Si quelqu'un à une isuggestion pour m'aider à régler mon problème.

Cordialement,
Bubut