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

VBA Access Discussion :

lien liste déroulante sous formulaire


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut lien liste déroulante sous formulaire
    bonjour , voilà je veux créer un lien entre ma liste déroulante et mon sous-formulaire , voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
     
    Option Explicit
     
    Private Sub Modifiable0_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id_article] = " & Str(Nz(Me![Modifiable0], 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Il me dit que j'ai un probleme au niveau du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = Me.Recordset.clone
    Le temps est le pire enemi de l'homme

  2. #2
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Tu as essayé de déclarer rs comme un recordset ? Personnellement j'utilise Me.recordset.Clone est ça marche plutot bien.

    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Sérieusement , j'ai pris ce code sur la FAQ donc j'ai rien essayé de faire . Je n'ai pas compris quand tu dis
    Personnellement j'utilise Me.recordset.Clone est ca marche plutot bien.
    C'est ce qu'il y a dans mon code , non ?
    Le temps est le pire enemi de l'homme

  4. #4
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Oui c'est pour ça, je suis étonné que ça ne marche pas chez toi. Tu peux commencer par déclarer rs comme un recordset. Juste une question bête mais ton formulaire est bien basé sur une requête ou une table.
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Il est basé sur une table

    je doit t'avouer je m'y connais pas du tout en VBA donc ....
    Le temps est le pire enemi de l'homme

  6. #6
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    En fait, c'est plus "propre" de déclarer directement un recordset. la déclaration en tant qu'objet est très vague et peu posé problème. Essaye en mettant. ou de rajouter la ligne avant la ligne
    Set rs = Me.Recordset.Clone
    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Maintenant il me met me dit qu'il y a une erreur au niveau du New
    Le temps est le pire enemi de l'homme

  8. #8
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    En effet, j'ai essayé sur une petit base test, j'ai la même erreur.

    As tu essayé de déclarer rs comme un recordset?

    Remplace "Object" par "Recordset" dans
    Dim rs As Object
    Pour information j'ai regarder sur le net le probleme du "New". En mettant la bibliothèque "Microsoft ActiveX Data Objects..." en priorité par rapport à "Microsoft DAO 3.6 ...", le New remarche parcontre la Méthode Seek ne fonctionne plus. Du moins, La definition de la bibliothéque seek a changé. Il y visiblement un conflit entre les deux bibliothèques.

    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    En remplacant Object par Recordset , sa ne marche pas
    Le temps est le pire enemi de l'homme

  10. #10
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Hum... pas evident ton problème. La synthase a l'air bonne.

    Peux m'en dire plus sur le message d'erreur, ça pourrai m'aider à comprendre.

    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Il me dit
    Variable objet ou variable de bloc WITH non définie
    Le temps est le pire enemi de l'homme

  12. #12
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Re,

    Bonne nouvelle, je crois savoir d'où vient ton problème.
    La méthode "clone" s'applique à un recordset, pour un formulaire c'est "RecordsetClone" il n'y pas de point entre clone et recordset. Voici le code que j'ai utilisé pour tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Commande12_Click()
    Dim rcs As Recordset
    Set rcs = Me.RecordsetClone
    MsgBox "commande" & rcs.Fields(0) & " ligne : " & rcs.Fields(1)
    End Sub
    Cordialement
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Comment te dire sa.... sa ne marche pas chez moi , il aime pas trop RecordsetClone sans le point .Il me dit "Vous avez entré une expression dont la valeur à la propriété ClôneRecordReset n'est pas valide "
    Le temps est le pire enemi de l'homme

  14. #14
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Etonnant, j'ai testé le code que j'ai mis dans mon dernier post et il marche. Je suis sous Access 2003.

    Tu as quelle version d'Access?

    Ton code se trouve bien dans le module d'un formulaire?

    Quelles sont tes bibliothéques actives et dans quelles ordre? (outils/références)
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Oui il se trouve bien dans le module de mon formulaire .Mes bibliothèques :
    j'ai les 5 premières de cocher (Visual , MS access object library , OLE , DAO,activeX)
    Le temps est le pire enemi de l'homme

  16. #16
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    J'ai les memes bibliothèque que toi et ça marche chez moi. Dans l'éditeur VBA quand tu tape "Me.", dans la liste déroulante qui s'ouvre y a-t-il "RecordsetClone"? Je ne comprend pas pourquoi ce code ne marche pas.
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    oui il y est bien , c'est peut etre dû à la référence que j'ai mis "id_article" , regarde sur mon premier code .
    Le temps est le pire enemi de l'homme

  18. #18
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Je ne pense pas vue que ton problème ce trouve avant cette ligne. Ce qui est bizzar c'est qu'il te propose bien le RecordsetClone mais que celui ne marche pas
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  19. #19
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    bonjour
    bonjour , voilà je veux créer un lien entre ma liste déroulante et mon sous-formulaire , voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rs As Object
     Set rs = Me.NomDuSousForm.Form.Recordset.Clone
     rs.FindFirst "[num] = " & Str(Nz(Me![Modifiable0], 0))
     If Not rs.EOF Then Me.NomDuSousForm.Form.Bookmark = rs.Bookmark

  20. #20
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    dans le genre j'ai l'équivalent de ça qui marche aussi bien sur 2003 que 2007:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable0_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id_article] = '"& Me![Modifiable0] &”’”
     
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub

Discussions similaires

  1. [AC-2010] Liste déroulante sous formulaire
    Par ptitlutin dans le forum IHM
    Réponses: 4
    Dernier message: 15/02/2012, 10h20
  2. Réponses: 3
    Dernier message: 09/11/2010, 16h26
  3. liste déroulante + sous formulaire
    Par qmike dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/05/2009, 10h58
  4. lien menu déroulant sous formulaire
    Par Ledaf dans le forum IHM
    Réponses: 4
    Dernier message: 25/03/2009, 16h58
  5. Réponses: 4
    Dernier message: 04/05/2007, 12h23

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