Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2011, 20h45   #1
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Par défaut 2 zones de liste déroulantes "interactives"

Bonsoir,

je souhaite permettre aux utilisateurs d'effectuer une saisie de bons de commande via un formulaire. Dans ce formulaire, il y aura, entre autres, 2 zones de liste déroulantes : une pour choisir une entreprise (Tiers), l'autre un marché public.

Le truc, c'est que ces 2 données sont déjà liées entre elles, via ce MCD.
Et bien sûr je souhaite offrir la possibilité de commencer la saisie par l'entreprise ou par le marché. Sachant que les entreprises sont liées avec le maître d'ouvrage par un ou plusieurs marchés. Et qu'en choisissant un marché, une ou plusieurs entreprises apparaîtront pour faire un choix.



Si j'affecte une requery sur l'évènement après changement
Code :
1
2
3
SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers
FROM T_Tiers INNER JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers
WHERE (((TR_Marche_Tiers.NUM_Marche)=[Formulaires]![F_BDC]![ZDL_Marche]));
ça marche dans un sens, mais si je pose une requery sur l'autre zone de liste, je n'obtiens plus rien.

Faut-il que je teste la valeur du contrôle?

Merci d'avance
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h14   #2
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Dans mon formulaire :
*

Je pose comme condition dans l'évènement "sur changement" des zones de liste Marche et Tiers :

Code :
1
2
3
4
5
6
7
Private Sub ZDL_Marche_Change()
    If Me.ZDL_Marche.Value = Null Then
        Me.ZDLD_Tiers.RowSource = "SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers ORDER BY T_Tiers.Lb_Tiers;"
    Else
        Me.ZDLD_Tiers.RowSource = "SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers WHERE (((TR_Marche_Tiers.NUM_Marche) = [Formulaires]![F_BDC]![ZDL_Marche])) ORDER BY T_Tiers.Lb_Tiers;"
    End If
End Sub
Code :
1
2
3
4
5
6
7
Private Sub ZDLD_Tiers_Change()
    If Me.ZDLD_Tiers.Value = Null Then
        Me.ZDL_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche WHERE (((T_Marche.NUM_Compta) <> "")) ORDER BY T_Marche.NUM_Compta;"
    Else
        Me.ZDL_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche WHERE (((T_Marche.NUM_Compta) <> "") And ((TR_Marche_Tiers.NUM_Tiers) = [Formulaires]![F_BDC]![ZDLD_Tiers])) ORDER BY T_Marche.NUM_Compta;"
    End If
End Sub
Cela fonctionne pour la "zone de liste Marche", sauf si je re-clic sur la zone de liste Marche, mais pas dans l'autre sens pour la "zone de liste Tiers".

J'obtiens une erreur de syntaxe :
[IMG][/IMG]

Une idée ?
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 15h31   #3
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
C'est très proche de la FAQ http://access.developpez.com/faq/?page=zdl#DepZdl

Mais je voudrais le faire dans les 2 sens.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 16h21   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

comme ceci


Code :
Select TVille.ID, TVille.Nom From TVille Where TVilles.IDPays like "*" & Forms!F_Geographie.lstPays & "*";

Vois une application ici :

http://www.developpez.net/forums/d10...e/#post5670042


La bdd se trouve dans mon dernier post de cette discussion.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 17h41   #5
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Merci, j'ai un peu trop galéré pour réussir cette étape, j'ai opté pour un seul choix pour l'instant, pour pouvoir avancer un peu.

Mais j'y reviens dès que possible !
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 11h01   #6
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Bonjour,

J'y reviens, pour la saisie des factures.
Une facture peut être consécutive à un bon de commande, ou pas.

Donc si je pré-sélectionne un BDC, j'aurais les infos "marche", "tiers", "agent" (puisqu'elles auront déjà été saisies dans le BDC)

Je mets donc sur l'évènement réception focus de la zone de liste marche :
Code :
1
2
3
4
5
6
7
8
9
Private Sub ZDLD_Marche_GotFocus()
    If Me.ZDLD_BdC = Null Then
        Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche WHERE (((T_Marche.NUM_Compta) <> "")) ORDER BY T_Marche.NUM_Compta;"
        Me.ZDLD_Marche.Requery
    Else
        Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta FROM (T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche) LEFT JOIN (T_BDC LEFT JOIN TR_BDC_FACT ON T_BDC.Id_BDC = TR_BDC_FACT.NUM_BDC) ON (TR_Marche_Tiers.NUM_Tiers = T_BDC.NUM_Tiers) AND (TR_Marche_Tiers.NUM_Marche = T_BDC.NUM_Marche) WHERE (((T_Marche.NUM_Compta) <> "") And TR_BDC_FACT.NUM_BdC Like " * " & Forms!F_Fact.ZDLD_BdC & " * " ORDER BY T_Marche.NUM_Compta;"
        Me.ZDLD_Marche.Requery
    End If
End Sub
Et paf, j'ai une erreur d'exécution '13' : incompatibilité de type.

Une idée SVP ?

PS: au passage, je ne parviens pas à aller à la ligne dans mon code. (jai bien utilisé " _" puis entrée, mais apparemment dans une ligne SQL, ça plante?
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 11h46   #7
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
L'erreur se trouve sur cette ligne
Code :
Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta FROM (T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche) LEFT JOIN (T_BDC LEFT JOIN TR_BDC_FACT ON T_BDC.Id_BDC = TR_BDC_FACT.NUM_BDC) ON (TR_Marche_Tiers.NUM_Tiers = T_BDC.NUM_Tiers) AND (TR_Marche_Tiers.NUM_Marche = T_BDC.NUM_Marche) WHERE (((T_Marche.NUM_Compta) <> "") And TR_BDC_FACT.NUM_BdC Like " * " & Forms!F_Fact.ZDLD_BdC & " * " ORDER BY T_Marche.NUM_Compta;"
Voici mon MCD
[IMG][/IMG]
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h38   #8
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par ClaudeLELOUP Voir le message
Bonjour,

comme ceci


Code :
Select TVille.ID, TVille.Nom From TVille Where TVilles.IDPays like "*" & Forms!F_Geographie.lstPays & "*";
Vois une application ici :

http://www.developpez.net/forums/d10...e/#post5670042

La bdd se trouve dans mon dernier post de cette discussion.

J'essaie d'appliquer ce que vous avez mis en oeuvre, notamment entre les code postal et les villes, mais ça ne marche pas pour moi, ça m'efface la requête source de la seconde zone de liste.

De plus, je ne comprends pas comment vous avez le retour, en choisissant une ville, hop, le CP.

Dans mon cas, je ne pourrai pas obtenir une seule valeur, puisqu'à 1 Tiers peuvent correspondent plusieurs Marchés. Et vice versa

Je n'obtiens pas la valeur direct dans ma seconde zone de liste, mais en choix comme lorsqu'il y a plusieurs valeurs. Mais c'est peut-être dû au fait que j'ai fait un Compte au lieu de Expression sur somme comme vous.
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 17h09   #9
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Si tu peux poster un BDD compatible Access2000 je pourrai tester.

Si ce n'est pas possible poste le sql des requêtes de la propriété "contenu" de tes zones de liste.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 23h41   #10
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonsoir,

La solution que je t'ai d'abord proposée (like "*" & ...) ne fonctionne pas ici car les champs de référence contiennent du numérique.

Voici une solution :
1° Modifie
la propriété "contenu" de ZDLD_Marche :
Code :
SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta, Sum(1) AS NbreMarche FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche GROUP BY T_Marche.Id_Marche, T_Marche.NUM_Compta HAVING (((T_Marche.NUM_Compta)<>"")) ORDER BY T_Marche.NUM_Compta;
la propriété "contenu" de ZDLD_Tiers :
Code :
SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers ORDER BY T_Tiers.Lb_Tiers;
2° sauve le formulaire

3° Modifie
le code associé à l'évènement Après MàJ de ZDLD_Marche :
Code :
1
2
3
Private Sub ZDLD_Marche_AfterUpdate()
Me.ZDLD_Tiers.RowSource = "SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers WHERE (((TR_Marche_Tiers.NUM_Marche)=[Formulaires]![F_BDC]![ZDLD_Marche])) ORDER BY T_Tiers.Lb_Tiers;"
End Sub
le code associé à l'évènement Après MàJ de ZDLD_Tiers :

Code :
1
2
3
Private Sub ZDLD_Tiers_AfterUpdate()
Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta, Sum(1) AS NbreMarche FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche WHERE (((TR_Marche_Tiers.NUM_Tiers)=[Formulaires]![F_BDC]![ZDLD_Tiers])) GROUP BY T_Marche.Id_Marche, T_Marche.NUM_Compta HAVING (((T_Marche.NUM_Compta)<>"""")) ORDER BY T_Marche.NUM_Compta;"
End Sub
4° sauve le formulaire
5° vérifie que c'est bien ce que tu souhaites.

Un défaut : lorsque les deux choix ont été fixés, on ne peut plus revenir en arrière.

Pour contourner je te propose : un double-clic sur le champ rétablit la liste illimitée.

Comme ceci :
Code :
1
2
3
Private Sub ZDLD_Marche_DblClick(Cancel As Integer)
Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta, Sum(1) AS NbreMarche FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche GROUP BY T_Marche.Id_Marche, T_Marche.NUM_Compta HAVING (((T_Marche.NUM_Compta)<>"")) ORDER BY T_Marche.NUM_Compta;"
End Sub
et
Code :
1
2
3
Private Sub ZDLD_Tiers_DblClick(Cancel As Integer)
Me.ZDLD_Tiers.RowSource = "SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers ORDER BY T_Tiers.Lb_Tiers;"
End Sub
Inconvénient :

Il devient ainsi possible d'encoder deux valeurs incompatibles.
Ex de scénario : choix de marché ---> choix du tiers ---> double-clic et choix d'un autre tiers incompatible.

Remède : une fonction qui contrôlerait la compatiblité.

Mais aujourd'hui, il se fait tard... reviens si intérêt.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 00h05   #11
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Un grand merci ! je mets ceci en application dès demain matin, et je te dis quoi
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h26   #12
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par ClaudeLELOUP Voir le message
Voici une solution.../...
Mais aujourd'hui, il se fait tard... reviens si intérêt.
Merci !!!
C'est pas mal du tout! ça me convient pour commencer, par contre comment se fait-il que même lorsqu'il n'y a qu'un choix possible, il faille sélectionner ce choix?
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h32   #13
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
bah voui, on a retiré la vérification sur la colonne somme
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h33   #14
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Parce que ACCESS attend que tu lui dises de le faire.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h39   #15
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Citation:
bah voui, on a retiré la vérification sur la colonne somme
Quelle vérification ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h07   #16
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Citation:
Envoyé par ClaudeLELOUP Voir le message
Quelle vérification ?
Celle-ci
Code :
1
2
3
4
5
6
7
8
 
If Me.ZDLD_Marche.Column(1) = 1 Then
  Me.ZDLD_Tiers = Me.ZDLD_Tiers.ItemData(0)
Else
  DoCmd.GoToControl "ZDLD_Tiers"
  Me.ZDLD_Tiers.Value = Null
  Me.ZDLD_Tiers.Dropdown
End If
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h31   #17
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Hier soir, je ("on") n'avais pas compris ton code.


Pour l'aménagement automatique si le choix se limite à un seul cas, je te propose ceci :

On teste qu'il y a un premier et pas de deuxième ---> il est tout seul !

Code :
1
2
3
4
5
6
7
8
9
10
Private Sub ZDLD_Tiers_AfterUpdate()
Me.ZDLD_Marche.RowSource = "SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta, Sum(1) AS NbreMarche FROM T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche WHERE (((TR_Marche_Tiers.NUM_Tiers)=[Formulaires]![F_BDC]![ZDLD_Tiers])) GROUP BY T_Marche.Id_Marche, T_Marche.NUM_Compta HAVING (((T_Marche.NUM_Compta)<>"""")) ORDER BY T_Marche.NUM_Compta;"
If IsNull(Me.ZDLD_Marche.ItemData(1)) And Not IsNull(Me.ZDLD_Marche.ItemData(0)) Then
    'il n'y a qu'un seul choix possible
    Me.ZDLD_Marche = Me.ZDLD_Marche.ItemData(0)
Else
    DoCmd.GoToControl "ZDLD_Marche"
    Me.ZDLD_Marche.Dropdown
End If
End Sub
et

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub ZDLD_Marche_AfterUpdate()
Me.ZDLD_Tiers.RowSource = "SELECT T_Tiers.Id_Tiers, T_Tiers.Lb_Tiers FROM T_Tiers LEFT JOIN TR_Marche_Tiers ON T_Tiers.Id_Tiers = TR_Marche_Tiers.NUM_Tiers WHERE (((TR_Marche_Tiers.NUM_Marche)=[Formulaires]![F_BDC]![ZDLD_Marche])) ORDER BY T_Tiers.Lb_Tiers;"
If IsNull(Me.ZDLD_Tiers.ItemData(1)) And Not IsNull(Me.ZDLD_Tiers.ItemData(0)) Then
    'il n'y a qu'un seul choix possible
    Me.ZDLD_Tiers = Me.ZDLD_Tiers.ItemData(0)
Else
    DoCmd.GoToControl "ZDLD_Tiers"
    Me.ZDLD_Tiers.Dropdown
End If
 
End Sub

Mais ton idée est aussi bonne.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h52   #18
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
C'est magnifique ! Merci
Et je comprends bien, c'est parfait !

J'oeuvre maintenant du côté des Factures, c'est le même système en plus compliqué, puisqu'elles ne sont pas toujours précédées d'un bon de commande.

minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h57   #19
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
Le signifie le 1er choix (la première valeur) ?

Tu m'as redonné le sourire ! depuis 2jours, je fronçais le haut du visage...!
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h06   #20
Membre confirmé
 
Avatar de minot83
 
Homme
Administrateur de base de données
Inscription : mars 2006
Messages : 285
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mars 2006
Messages : 285
Points : 231
Points : 231
J'ai une bizarrerie, lorsque j'utilise le formulaire de saisie des Factures, tout se passe bien, mais quelques fois, lorsque je reviens dessus pour faire un test, sans choisir au préalable de BDC, ma liste est vide car la requête source n'est plus

Code :
1
2
SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta
FROM T_Marche;
mais

Code :
1
2
3
SELECT T_Marche.Id_Marche, T_Marche.NUM_Compta
FROM (T_Marche LEFT JOIN TR_Marche_Tiers ON T_Marche.Id_Marche = TR_Marche_Tiers.NUM_Marche) LEFT JOIN T_BDC ON (TR_Marche_Tiers.NUM_Tiers = T_BDC.NUM_Tiers) AND (TR_Marche_Tiers.NUM_Marche = T_BDC.NUM_Marche)
WHERE (((T_BDC.Id_BDC)=[Formulaires]![F_Fact]![ZDLD_BdC]));
minot83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h48.


 
 
 
 
Partenaires

Hébergement Web