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

IHM Discussion :

Acceder à un sous formulaire depuis un formulaire


Sujet :

IHM

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut Acceder à un sous formulaire depuis un formulaire
    Bonjour

    j'ai un petit problème pour accéder à un sous formulaire depuis le formulaire principal.

    Je m'explique, j'ai un formulaire et un sous formulaire qui sont liés à une requête.
    Lorsqu'on clique sur un bouton du formulaire, j'execute une autre requete via vba et je veux écrire le résultat de cette requête dans le sous formulaire mais là y a un gros hic...

    Bon j'ai lu plein de belles choses notamment sur la faq mais aussi sur d'autres sites mais rien n'y fait...

    J'ai essayé avec ces 2 synthaxes mais rien à faire, j'ai droit à un message d'erreur me disant qu"il est impossible de trouver le sous form auquel il est fait référence...
    'Forms![Sous Formulaire Outil]![nom service].Text = "test"
    'Forms![Form_Formulaire Outil]![Form_Sous Formulaire Outil].Form![nom service] = "test"

    PS: le formulaire principal est outil
    le sous formulaire:Sous Formulaire Outil

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 348
    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 348
    Points : 19 600
    Points
    19 600
    Billets dans le blog
    65
    Par défaut
    Salut,

    D'après ton code:

    Forms![Form_Formulaire Outil]![Form_Sous Formulaire Outil].Form![nom service] = "test"

    ton formulaire principal s'appelle: 'Form_Formulaire Outil'

    et ton sous formulaire: 'Form_Sous Formulaire Outil'

    Est-ce exact ?

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    tout d'abord merci de me répondre.

    Pour le nom des formulaires en fait si on est dans la fenetre Access le formulaire principal c'est [Formulaire Outil] et le sous form [Sous Formulaire Outil] mais quand on est dans vba il y a "Form_" devant chaque nom de formulaire. donc en fait je sais pas quelle synthaxe utiliser mais quand je test que ça soit avec l'une ou l'autre ça marche pas....

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Il me semble que tu dois enlever le "Form_" avant le nom de ton formulaire. Le vrai nom, c'est le nom que tu lui as donné. Access rajoute le Form_ mais dans ta requête, ton formulaire n'est pas reconnu comme tel.

    Arrêtez moi si je me trompe.

  5. #5
    Nouveau membre du Club Avatar de Puffcash
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut déja eut ce probleme
    Salut je crois que j'ai deja eut le même probleme,

    moi j'ai fais come ca :
    Set maform = Screen.ActiveForm
    Debug.Print maform![OSousFormulaire]![U]
    If IsNull(maform![OSousFormulaire]![U].Value) = True Then
    maform![OSousFormulaire]![U].Value = 0
    Else
    End If


    OSousFormulaire était mon sous formulaire et U mon champ
    Je c'est pas si ca peut t'aider ...

    bye

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Forms![Formulaire Outil]![Sous Formulaire Outil]![nom service].Text
    marche po:impossible de trouver le champ "sous formulaire" auquel il est fait réfernce dans votre expression

    Forms![Form_Formulaire Outil]![Form_Sous Formulaire Outil]![nom service].Text (c'est la même erreur avec Form_Formulaire Outil tu dois avoir raison)

    bon ben j capte po là ...
    Je viens de regardrer si les noms étaient les bons mais pas d problème...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    bon ca m stress là

    Forms![Sous Formulaire Outil]![nom service] marche pas connait pas le sous form

    par contre j'ai trouvé une synthaxe qui fonctionne mais qui accède qu'au formulaire (et po au sous form comme je voudrais donc pas au bon champ...)
    Forms![Formulaire Outil]![nom service]

  8. #8
    Invité
    Invité(e)
    Par défaut


    Si tu veux mettre une valeur dans un champ d'un sous formulaire tu à 2 possibilité :

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.Sous_Formulaire_Outil.Form.nom_service.value = "test"
    Le tiret bas remplace un espace quand le nom n'est pas entre crochets

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.[Sous Formulaire Outil]![nom service].value = "test"
    Entre crochets, ne pas mettre les tirets bas.
    Entre crochet permet d'accéder directement aux propriétés du controle, donc pas besoins du "Form"

    Voilà

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Encore une fois merci de répondre mais ça fonctionne toujours pas

    Membre de méthode ou de données introuvable pour la solution 1)
    Impossible de trouver le champ forms auquel il est fait réf... pour la solution 2)

  10. #10
    Nouveau membre du Club Avatar de Puffcash
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    T'as essayé mon truc ?


    Set maform = Screen.ActiveForm
    Debug.Print maform![SousFormulaire]![Champ]
    maform![SousFormulaire]![Champ].value = "test"

    ????

    Le résultat pour moi c'est : Quand je fais un choix dans le formulaire "maître", une valeur est ajoutée dans le sous-formulaire.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Désolé puff mais ca marche pas non plus là encore il dit qu"il connait pas le sous form auquel il est fait réf.
    Je commence à me demander si y a pas un problème avec ce sous formulaire...

    Sinon je viens de trouver une autre synthaxe qui m'a pas l'air mal mais ca fonctionne toujours pas

    [Form_Sous Formulaire Outil].N°outil = vst("num Outil")
    (Impossible d'attribuer une valeur à cet objet)

  12. #12
    Invité
    Invité(e)
    Par défaut Heuuuu....
    Dans la propriété de ton Form et Sous-Form -> Onglet "Autres"

    Pourrais-tu nous donner la valeur de "Name" ?

    Même chose pour le champ, quel est son "Name" ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut heeeuuuuuuuuuuu
    Le name du sous formulaire n'était pas le bon c'était fille6 je l'ai changé mais toutes les synthaxes sus citées ne fonctionnent toujours pas, dans presque tous les cas j'ai droit à "impossible d'attribuer une valeur à cet objet"

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Sinon j'ai trouvé cette synthaxe qui passe mais le problème c'est que j'ai rien qui s'écrit dans mon sous form

    Set db = CurrentDb()
    Set vst = db.OpenRecordset("SELECT * from outil where N°Etat <> 1")
    While Not vst.EOF
    [Form_Sous Formulaire Outil].N°outil.AfterUpdate = vst("num Outil")
    [Form_Sous Formulaire Outil].Nom_service.AfterUpdate = "test"
    [Form_Sous Formulaire Outil].Nom_Groupe.AfterUpdate = "test"
    [Form_Sous Formulaire Outil].Nom_Etat.AfterUpdate = "test"
    [Form_Sous Formulaire Outil].Nom_Marque.AfterUpdate = "test"
    [Form_Sous Formulaire Outil].nom_outil.AfterUpdate = vst("nom outil")
    If (IsNull(vst("commentaire"))) = True Then
    [Form_Sous Formulaire Outil].Commentaire.AfterUpdate = ""
    Else
    [Form_Sous Formulaire Outil].Commentaire.AfterUpdate = vst("commentaire")
    End If
    If (IsNull(vst("date achat"))) = True Then
    [Form_Sous Formulaire Outil].DATE_ACHAT.AfterUpdate = ""
    Else
    [Form_Sous Formulaire Outil].DATE_ACHAT.AfterUpdate = vst("date achat")
    End If
    If (IsNull(vst("date controle"))) = True Then
    [Form_Sous Formulaire Outil].DATE_CONTROLE.AfterUpdate = ""
    Else
    [Form_Sous Formulaire Outil].DATE_CONTROLE.AfterUpdate = vst("date controle")
    End If
    If (IsNull(vst("controle"))) = True Then
    [Form_Sous Formulaire Outil].controle.AfterUpdate = ""
    Else
    [Form_Sous Formulaire Outil].controle.AfterUpdate = vst("controle")
    End If
    [Form_Sous Formulaire Outil].Affecte.AfterUpdate = vst("affecte")
    [Form_Sous Formulaire Outil].Type.AfterUpdate = "test"
    vst.MoveNext
    Wend

    si vous vez des solutions j suis toujours preneur...

  15. #15
    Invité
    Invité(e)
    Par défaut Ouh lala .....
    Tu dois être en Access2003 le nom de ton formulaire est celui qui apparait dans la liste de tes formulaire

    Sinon, tu as vraiment un problème de compréhension
    AfterUpdate est un évènement pas une propriété !
    Il faudrait peut-être commencé par acheté "Access pour les nuls"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [Form_Sous Formulaire Outil].N°outil.Value = vst("num Outil")
    [Form_Sous Formulaire Outil].Nom_service.Value = "test"
    [Form_Sous Formulaire Outil].Nom_Groupe.Value = "test"
    Etc...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Ben si j'ai essayé avec ça, c'est que le reste ca marche pas non plus (c'est ce qu'on appelle le désépoir...)
    j'ai (bien sûr) déjà essayé avec value, ça change rien, avec text non plus alors si vous avez encore des conseils allez y faites vous plaisir parceque moi là je pleure


    PS: la version Acces c'est la 2000.

Discussions similaires

  1. Accéder champ sous-formulaire depuis autre formulaire
    Par CyberMen dans le forum VBA Access
    Réponses: 5
    Dernier message: 03/01/2010, 19h46
  2. Réponses: 3
    Dernier message: 01/04/2009, 11h11
  3. Réponses: 2
    Dernier message: 11/08/2008, 12h24
  4. Réponses: 5
    Dernier message: 31/12/2006, 14h39
  5. Réponses: 2
    Dernier message: 28/10/2004, 16h54

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