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 :

Sélectionner un champ et tous les autres s'affichent


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut Sélectionner un champ et tous les autres s'affichent
    Bonjour,

    J'ai une question ultra simple. J'ai regardé dans la FAQ mais je n'ai rien trouvé car je ne savais pas où chercher (j'ai regardé dans formulaires).

    J'aimerais sélectionner, dans un formulaire, le champ correspondant à la clé primaire, et qu'automatiquement, tous les autres détails se mettent à jour dans le formulaire (et que les champs soient bloqués/verrouillés).

    Merci


  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    je suis débutant en access mais je pense qu'en
    -créant un formulaire directement lié à ta table
    -créant une Zone de Liste modifiable contenant toutes tes cles primaires
    -en idiquant dans le champ texte contenant ta cles primaire "=Me!ModifiableXX"
    ça devrait marcher

    après tu n'as plus qu'a parametrer tes Zones de texte pour les verouiller

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Merci, mais où dois-je indiquer "=Me!ModifiableXX" exactement ?

    Edit : le principe c'est en gros de faire une requête pour chaque champ qui recherche automatiquement l'enregistrement correspondant à la la clé primaire rentrée plus haut. Je sais que c'est simple car je l'ai fait en cours ya longtemps, mais je ne sais plus comment faire.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 91
    Points
    91
    Par défaut
    si j'ai bien compris c ca ce que tu veux ,mais c un exemple pour un seul champs donc je te laisse faire le reste
    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
     
    Private Sub Modifiable25_Change()
    Dim Enr As Recordset
     
    Set Enr = CurrentDb.OpenRecordset("NomDeTable")
     
    Me.texte.SetFocus 'c le controle ou tu veux affecter une donnée par rapport  a l'identificateur
     
    Do While Not Enr.EOF
    If Me.Modifiable25 = EnrProduits("champ1") Then
    Me.texte = EnrProduits("champ2")
     
    Exit Sub
    End If
     
    Enr.MoveNext
    Loop
    End Sub
    essaya ca et dis moi si ca marche

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Excuse moi ms je suis vraiment débutant. Où dois-je rentrer cela ?

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    Moi je peux te donner une solution coder, en sachant que ce n'est peut être pas la meilleur. Moi je l'utilise sur des petites bases pas trop partagé et ca tourne bien.

    Voici ma solution :

    Tu créer un zone de liste modifiable avec en propriété 'contenu' la table que tu veux afficher
    Ensuite tu creer un champ texte pour chaque champs de ta table

    Ensuite sur l'evenement 'Sur Changement de a liste modifiable tu met le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Modifiable1_Change()
        Dim db As Database
        Set db = CurrentDb
        Dim rs As Recordset
        Set rs = db.OpenRecordset("Select * From Table1 Where id=" & Modifiable1.Value & ";")
        If (Not rs.EOF) Then
            Texte1.Value = rs!libelle1
            Texte2.Value = rs!libelle2
            Texte3.Value = rs!libelle3
        End If
    End Sub

  7. #7
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bonjour,

    Tu peux regarder ce post le message #11...cela doit correspondre peu ou prou à ta question...si j'ai bien compris... : http://www.developpez.net/forums/sho...d.php?t=161454

    SE

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par 512banque
    Bonjour,

    J'ai une question ultra simple. J'ai regardé dans la FAQ mais je n'ai rien trouvé car je ne savais pas où chercher (j'ai regardé dans formulaires).

    J'aimerais sélectionner, dans un formulaire, le champ correspondant à la clé primaire, et qu'automatiquement, tous les autres détails se mettent à jour dans le formulaire (et que les champs soient bloqués/verrouillés).

    Merci

    Le plus simple

    1) Tu crée un nouveau formulaire lié à ta table
    2) Tu rée une zone de liste modifiableavec l'assistant activé
    3) Dans l'assistant, tu sélectionnes le 3ème choix


  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    C'est exactement ça que j'avais vu en cours, scorption, merci beaucoup à tous en tout cas !

  10. #10
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    La solution que propose scorpion1611 est bonne mais n'est pas disponible sur toutes les versions d'Access...

    SE

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 124
    Points
    124
    Par défaut
    Salut,

    Voici une solution efficace que j'utilise.

    Dans un formulaire tu place tous les champs que tu veux, mais pour la clé primaire tu utilise une liste déroulante.

    Tu charge la liste déroulante avec une requête sur la table pour obtenir toutes les valeurs de clé.

    Dans l'événement .._change() de liste déroulante, tu modifie la requête en modifiant la propriété RecordSource du formulaire, puis tu fait un requery sur le formulaire.

    Simple non !

    CAMIC

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 53
    Points : 46
    Points
    46
    Par défaut

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par stéphane_ais2
    La solution que propose scorpion1611 est bonne mais n'est pas disponible sur toutes les versions d'Access...

    SE
    Si en plus il faut se soucier des versions...













    Je rigoleuuuuuuuuuuuuuuuuux bien sur

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Scorpion, quand je crée un nouveau formulaire, et que j'y insère une liste modifiable, le 3ème choix ne m'est pas proposé.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par 512banque
    Scorpion, quand je crée un nouveau formulaire, et que j'y insère une liste modifiable, le 3ème choix ne m'est pas proposé.


    1°) Suite au message de stéphane_ais2, quel version as-tu ?

    2°) Affectes-tu une table (ou requête) à ton formulaire avant ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    1) J'ai la version 2007 (bêta).

    2) Je ne sais pas comment lui affecter une table.

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 223
    Points : 240
    Points
    240
    Par défaut
    2°) Le plus simple, c'est au moment de la création lorsque tu cliques sur Nouveau, tu obtiens la boite de dialogue suivante :



    Dans la zone "Choisissez la table ou la requete...", tu sélectionnes la table ou la requete que tu veux associer.

  18. #18
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Si j'ai bien compris tu veus sur une liste sélectionner le N° d'un enregistrement (clef primaire) et sur ta sélection afficher sur ce form les informations de cet enregistrement.
    avec la version Access12

    et bien c'est comme avec les autres version :

    tu lie ton form à ta table :
    Propriétés -> Données -> Source.

    tu créer dans l'entête du Formulaire une zone de liste (tu suis les indications de l'assistant)

    Dans la partie détail du Form tu mets tous les champs que tu vérrouille :
    Propriétés (control) -> Données -> Verrouillé -> Oui.

    Dans l'évenement After_Update de ta liste : (réponse dans )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Me.Filter = "[TonChamp] = " & Me.TaZoneListe
        Me.FilterOn = True
    En gros tu applique un filtre sur ton Form avec ta zone de liste. Ce qui change avec Access12 c'est l'interface (pour ton soucis)


  19. #19
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 365
    Points : 19 757
    Points
    19 757
    Billets dans le blog
    65
    Par défaut
    Bonsoir à tous,

    Voila je voudrais pas embrouiller les choses, toutes les méthodes proposés sont valables, mais je crois que 512Banque ne maitrise pas trop les outils Access..(on as tous été novice en la matière.. )

    Alors je me permet de revenir sur la méthode proposé par stéphane...en utilisant une procédure générique ou il n'aurait qu'a remplire le nom du champ (dans sa table) et le nom du control sur son form:

    la procedure à copier dans le module du form:

    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
    Public Sub Goto_Enrg(nomchamp As String, nomcontrol As String)
    Dim rs As Object
     
    Set rs = Me.RecordsetClone
     
        If Not IsNull(Me(nomcontrol)) Then
     
           Select Case rs.Fields(nomchamp).Type
     
           Case dbLong, dbInteger
           rs.FindFirst "[" & nomchamp & "] = " & Me(nomcontrol)
           Case dbText
           rs.FindFirst "[" & nomchamp & "] = '" & Me(nomcontrol) & "'"
           Case dbDate
           rs.FindFirst "[" & nomchamp & "] = #" & Format(Me(nomcontrol), "mm/dd/yyyy") & "#"
     
           End Select
     
           If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
        End If
     
    Set rs = Nothing
     
    End Sub
    et sur after update de la zone de liste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub NomZoneDeListe_AfterUpdate()
     
    Goto_Enrg "nomchamp", "NomZoneDeListe"
     
    End Sub
    @+

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 37
    Points
    37
    Par défaut
    Nickel ça a marché !

    En fait, il fallait que je mette ce champs dans l'entête du formulaire !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/02/2014, 13h24
  2. [AC-2003] Remplissage d'un champ pour tous les enregistrements
    Par oliv45 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 16/04/2009, 16h31
  3. Afficher l'un et cacher tous les autres
    Par Goupo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2009, 09h59
  4. Réponses: 9
    Dernier message: 01/02/2007, 11h36
  5. Réponses: 1
    Dernier message: 19/08/2006, 10h27

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