IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

mise à jour contenu liste


Sujet :

Access

  1. #1
    Membre actif Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Points : 200
    Points
    200
    Par défaut mise à jour contenu liste
    bonjour,

    j'ai créé un formulaire en mode continue.
    dans ce formulaire j'ai des listes déroulantes.
    une de ces listes contient normalement la liste des personnes concerné par l'enregistrement sur lequel elle se trouve.

    c'est là le probleme j'ai esayé plusieur solutions:
    1er
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Contacts].Num_cf, [Contacts]![Nom_cf] & " " & [Contacts]![Prénom_cf] AS Expr1
    FROM Echanges INNER JOIN [Contacts] ON Echanges.reference_f = [Contacts].Référence
    ORDER BY [Contacts]![Nom_cf] & " " & [Contacts]![Prénom_cf];
    resultat: la liste comporte tous les contacts
    (moi je veux juste ceux qui ont la même reference que l'echange affiché)

    2eme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Contacts].Num_cf, [Contacts]![Nom_cf] & " " & [Contacts]![Prénom_cf] AS Expr1
    FROM Echanges INNER JOIN [Contacts] ON Echanges.reference_f= [Contacts].Référence
    WHERE ((([Contacts].Référence)=[Formulaires]![Modif_indiv_echange]![ref1]))
    ORDER BY [Contacts]![Nom_cf] & " " & [Contacts]![Prénom_cf];
    resultat: je ne retrouve aucun contacts.
    ("Modif_indiv_echange" est mon formulaire et "ref1" contient l'info "Echanges.reference_f" de l'enregistrement affiché)

    où ai je fais une erreur?
    est-ce faisable en mode continue?

    merci d'avance pour votre aide
    a+

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut
    Salut,
    mais je comprend pas tout, le problème :
    [Contacts] c'est une table ou un formulaire? car un coup
    [Contacts].Num_cf et un coup [Contacts]![Nom_cf]
    ensuite c'est quoi la valeur que tu prend de ton formulaire pour faire la correspondance?

  3. #3
    Membre actif Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Points : 200
    Points
    200
    Par défaut
    "contacts" est une table ainsi que "echanges"
    mon formulaire en mode continue s'appelle "Modif_indiv_echange"

    dans la table "contacts" j'ai les champs suivants:
    Num_cf
    Nom_cf
    Prénom_cf
    Référence
    ...

    dans ma table "echanges" j'ai les champs suivants:
    reference_f
    nom_prenom_cf
    date_f
    ...

    la source de mon formulaire est une requete basé principalement sur la table "echanges" et une autre table "x" dont je resort juste une info pour affichage. ce formulaire permet de modifier les champs de la table "echanges" uniquement.

    une liste déroulante permet d'alimenter mon champ "nom_prenom_cf" grace à une requête (voir premier message) allant chercher les nom et prenom des contacts dans la table "contacts".

    c'est les champs "référence" et "référence_f" qui font le lien entre les deux tables.
    dans ma liste je voudrais en fait seulement les contacts dont "reference" et égale à "reference_f" de l'enregistrement affiché, et non tous les contacts de la table.

    je pense que la difficulté vient du fait d'étre en mode continu.
    je ne trouve pas comment faire, ni d'où vient reelement le problème.

    merci d'avance pour votre aide
    (esperant que mes explications sont plus claire comme ça)

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut
    re,
    tiens esseye ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [Contacts].[Nom_cf] & " " & [Contacts].[Prénom_cf]
    FROM contacts
    WHERE Référence =[Modif_indiv_echange]![ref1];
    [Modif_indiv_echange]![ref1] c'est bien ça le nom du control qui contient la valeur reference_f dans ton formulaire?

    mais bon j'airai était bien plus sur de la synthax en VBA..... ainsi que pour la mise à jours... car là je suis pas sur qu'il change le contenu du menu déroulant pour chaque enregistrement.

  5. #5
    Membre actif Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Points : 200
    Points
    200
    Par défaut
    merci, j'ai essayé ta solution, mais ça marche toujours pas.

    si tu pense qu'en vba c'est faisable, je connais un peu, mais je vois pas comment faire ça.

    le problème du formulaire en mode continu, c'est qu'a mon avis il ne sait pas à quel enregistrement je fais reference peu etre. vu qu'il en a plusieurs sur le formulaire.

    mais si tu as une solution je prends, car là je suis coincé je suis obligé d'empecher la modification de ce champ, pour eviter une erreur de saisi.

    d'ailleur quiconque à une idée est le bien venu.

    merci d'avance
    a+

  6. #6
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par moicats
    le problème du formulaire en mode continu, c'est qu'a mon avis il ne sait pas à quel enregistrement je fais reference peu etre. vu qu'il en a plusieurs sur le formulaire.
    Ben vi, Access ne devine pas encore à quel enregistrement tu fais référence.

    Par contre, toi, tu peux savoir à quel enregistrement Access fait référence dans un formulaire, car Access, contrairement respecte scrupuleusement des règles bien définie.

    A savoir qu'il fait référence à... l'enregistrement courant !!!

    Et ceci vaut qu'il y ait un seul ou plusieurs enregistrements, donc mode continu ou pas, c'est la même histoire : il n'y a qu'un seul enregistrement courant.

    A partir de là, tu peux imaginer ce que tu veux, sachant que dans le mode continu tout tes contrôles répondront de la même manière pour toutes leur propriétés, qu'ils soient indépendants ou dépendant.

    La seule exception qui ne doit pas faire illusion est la possibilité d'une mise en forme conditionnelle sur les contrôles d'un form en mode continu et qui permettra des affichages spécifiques à chaque instance d'un contrôle au niveau de la mise en forme.

    Mais il s'agit juste de la mise en forme (l'apparence), et non du travail sur les données elles-même...

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut
    re salut, dit Fred.G juste pour savoir si c'est bien sa s'il fait son code en VBA dans une procédure disont menu_ref1, il devra l'appeller dans la procédure Form_Current du formulaire c'est bien sa...

  8. #8
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Pardonne moi mais je n'ai pas suivi en détail tous les messages de ce thread, donc je ne saisis pas exactement ta question. si tu peux préciser je répondrai avec plaisir.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 54
    Points : 63
    Points
    63
    Par défaut
    pardon
    donc s'il fait du code VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub menu_ref1 ()
    Dim SQL1 As String
    If Not IsNull([Modif_indiv_echange]![ref1]) Then
    SQL1 = "SELECT[Contacts].[Nom_cf] & " " & [Contacts].[Prénom_cf] "
    SQL1 = SQL1 & "FROM contacts"
    SQL1 = SQL1 & " WHERE Référence =" & Me![Modif_indiv_echange]![ref1].Value
    Me![nom menu déroulant].RowSourceType = "Table/Query"
    Me![nom menu déroulant].RowSource = SQL1
    SQL1 = ""
    End Sub
    puis dans l'événement sur chargement du formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Private Sub Form_Current ()
    Call Sub menu_ref1
    End Sub

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 168
    Points : 196
    Points
    196
    Par défaut
    Vous ne pourrez pas personaliser le contenu de quoi que ce soit en mode continu. Vous aurez les meme valeurs pour tous les enregistrements. comme l a dir fred.g tous les controles sont identiques d un enregistrement a l autre.
    pas de solution.

  11. #11
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Ce genre code va fonctionner sans problème.

    Le principal souci viendra du fait que certaines combo n'afficheront rien si la propriété Limittolist = true et que la liste ne contient pas l'élément correspondant à celui qui doit s'afficher dans la propriété Value de la combo (tout cela si on parle de combo liées bien sûr).

  12. #12
    Membre actif Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Points : 200
    Points
    200
    Par défaut
    bonjour,

    Merci beaucoup à tous de votre précieuse aide.

    j'ai réussi à faire fonctionner ma liste grace aux codes d'herendel et aux explications de Fred.

    j'ai legerement simplifié le code en le regroupant sur un seul sub, mais c'est parfait, pour certaine liste qui sont vide, c'est pas un problème vu que c'est normal puisqu'il n'y a pas de contact.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_Current()
    Dim SQL1 As String
    If Not IsNull(Me!ref1) Then
    SQL1 = "SELECT [Contacts].Num_cf,[Contacts].Nom_cf, [Contacts].Type_cf"
    SQL1 = SQL1 & " FROM [Contacts]"
    SQL1 = SQL1 & " WHERE Référence =" & Me![ref1].Value & ";"
    Me![Qui_fourn_ech].RowSourceType = "Table/Query"
    Me![Qui_fourn_ech].RowSource = SQL1
    SQL1 = ""
    End If
    End Sub
    encore merci
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2002] Mise à jour contenu zone de liste déroulante
    Par marcdeb dans le forum IHM
    Réponses: 2
    Dernier message: 27/07/2009, 14h23
  2. mise à jour avec liste modifiable
    Par sunwind dans le forum IHM
    Réponses: 2
    Dernier message: 23/04/2008, 16h18
  3. Mise à jour de listes liées (ex : CP et Ville)
    Par Little_flower dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/02/2008, 20h32
  4. Formulaire mise à jour et liste deroulante
    Par yagrasdemonde dans le forum IHM
    Réponses: 3
    Dernier message: 01/03/2007, 17h27
  5. Mise à jour à partir liste déroulante
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2006, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo