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 :

Création d'un formulaire attaché à un onglet [AC-2016]


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Par défaut Création d'un formulaire attaché à un onglet
    Bonjour,

    Je suis en train de créer une application traitant beaucoup de champ et je souhaite organiser ces champs via des formulaires et des onglets et tout cela en dynamique. A la cible, j'ai donc la structure suivante :
    un formulaire principale intégrant n Onglets (le nombre de page Onglet est déterminé en fonction de la saisie de paramètre)
    sur chaque page, je crée un formulaire et sur ce formulaire, j'intègre x onglets. Sur chacune des pages de plus niveau, je crée un formulaire contenant les champs de saisie.

    En mode statique, voilà ce que ca donne

    Nom : Form_access.JPG
Affichages : 241
Taille : 23,3 Ko

    j'ai des soucis dans le positionnement et référencement des différents éléments (formulaire, onglet, page, sous-formulaire).

    Pouvez-vous m'apporter votre expérience sur cette approche

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Habituellement on evite des modifier la structure d'un formulaire ou de construire des formulaires "a la volee".

    Quand je dois faire quelque chose de semblable, je cree un formulaire "le pire cas" qui contient TOUS les champs et les controles dont je pourrais avoir besoin.
    Apres a l'ouvreture, je rends visibles ou invisibles, deplace, redimensionne mes controles.
    Ca se fait facilement avec le VBA en changeant les proprieties du controle concerne et cela marche tout le temps memes dans les "executables" de Access.
    J'ai actuellemt un cas ou j'ai 4 controles qui occupant a l'affichage la meme position physique.
    En design ils ont chacun une place separee, en utilisation, je les superpose et je ne garde visible que celui qui m'intersse.

    Si tu ne souhaites pas suivre cette approche, quelles sont plus precisement les difficultes que tu rencontres.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Par défaut
    Bonjour,

    Merci pour ta réponse

    Mon problème est que, lorsque je veux me positionner sur la page de mon onglet pour y créer un formulaire (Etape 2), j'ai une erreur comme quoi access ne trouve pas l'endroit que je lui indique

    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
     
        sNomFormulaire = "Test_Form"
        sNomOnglet = "Test_Form_Onglet"
     
        DoCmd.OpenForm sNomFormulaire, acDesign, , , , acHidden
    '
    '   Etape 1 : Création de l'onglet
    '
        Set ctl = CreateControl(sNomFormulaire, acTabCtl, acDetail, , , gauche, haut, Largeur, Hauteur)
     
        With ctl
            .Name = sNomOnglet
            For i_pages = 0 To .Pages.Count
    '
    '   Etape 2 : Sur chaque page de l'onglet, création d'un formulaire
    '
                cible = "Forms(sNomFormulaire)!" & sNomOnglet & ".Pages(" & i_pages & ")"
                Set ctl1 = CreateControl(cible, acForm, acDetail, , , gauche, haut, Largeur, Hauteur)
            Next i_pages
     
        End With
    En fait, je n'arrive pas à trouver la bonne syntaxe pour identifier ma "cible"

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Par défaut
    Presque arrivé au bout de ce que je veux faire.

    Il me reste une erreur :
    dans l'étape 3, j'ai le message d'erreur "Ne trouve pas le formulaire auquel il est fait référence


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
        sNomFormulaire = "Test_Form"
        sNomOnglet = "Test_Form_Onglet"
     
        DoCmd.OpenForm sNomFormulaire, acDesign, , , , acHidden
    '
    '   Etape 1 : Création de l'onglet dans le formulaire principal
    '
        Set ctl = CreateControl(sNomFormulaire, acTabCtl, acDetail, , , gauche, haut, Largeur, Hauteur)
        i_pages = 1
        With ctl
            .Name = sNomOnglet
     
            Set cible = Forms(sNomFormulaire).Controls(sNomOnglet)
     
            For Each ctlPages In cible.Pages
    '
    '   Etape 2 : Sur chaque page de l'onglet, création d'un sous-formulaire
    '
                ctlPages.Name = "Pages" & i_pages
     
                Set ctl1 = CreateControl(sNomFormulaire, acSubform, acDetail, ctlPages.Name, , gauche, haut, Largeur, Hauteur)
                With ctl1
                    .Name = "Test_sForm" & i_pages
                    sNomSFormulaire = .Name
                End With
    '
    '   Etape 3 : Dans le sous-formulaire, création d'un onglet
    ' 
                 For Each ctlCurrent In ctlPages.Controls
     
                    Set ctl2 = CreateControl(sNomSFormulaire, acTabCtl, acDetail, , , gauche, haut, Largeur, Hauteur)
     
                Next ctlCurrent
     
                i_pages = i_pages + 1
     
            Next ctlPages
     
        End With
    Auriez-vous une idée pour corriger cette erreur

    Merci d'avance

  5. #5
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Bonjour Denis,

    C'est pourtant simple, enfin il me semble

    Le sous-formulaire dans lequel tu souhaites créer ce contrôle n'est pas actuellemment ouvert en mode création, comme tu as fait pour le formulaire principal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm sNomSFormulaire, acDesign, , , , acHidden
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Par défaut
    Bonjour User,

    Merci pour ton retour

    J'ai intégré l'ouverture du formulaire mais j'ai toujours l'erreur comme quoi le formulaire est soit inexistant, soit mal orthographié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    sNomFormulaire2 = "Forms(" & sNomFormulaire & ").Controls(" & sNomOnglet & ").(" & sNomSFormulaire & ")Form"
                    DoCmd.OpenForm sNomFormulaire2, acDesign, , , , acHidden
                    Set ctl2 = CreateControl(sNomFormulaire2, acTabCtl, acDetail, , , gauche, haut, Largeur, Hauteur)
    Cdlt

    Denis

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

Discussions similaires

  1. [AC-2007] création formulaires superposés avec onglets d'accès par clic
    Par jedebute58 dans le forum Access
    Réponses: 2
    Dernier message: 18/02/2015, 22h48
  2. Réponses: 1
    Dernier message: 04/10/2013, 13h59
  3. Réponses: 7
    Dernier message: 30/08/2007, 06h54
  4. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  5. Réponses: 3
    Dernier message: 27/10/2004, 14h43

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