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 :

Dupliquer un formulaire contenant des sous-formulaires


Sujet :

Access

  1. #1
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut Dupliquer un formulaire contenant des sous-formulaires
    Bonjour à tous,

    A partir, d'un formulaire composé de 2 sous formulaires, je voudrais renommer le formulaire principal ainsi que les 2 sous formulaires, pour que les formulaires de base puissent servir de nouveau.

    J'ai créé un code mais je bloque sur les sous formulaires, je n'arrive pas à les renommer.
    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
    'Attache les sous-formulaire avec les nouvelles tables
        Dim SSDossier, SSAvoir, MPoint As Variant
     
        SSDossier = "Selection_Dossier_" & Djour & "_" & Dheure & ""
        SSAvoir = "Selection_Avoir_" & Djour & "_" & Dheure & ""
        MPoint = "Selection_Pointage_" & Djour & "_" & Dheure & ""
     
        'Copie le formulaire principale
        DoCmd.CopyObject , "" & MPoint & "", acForm, "Sélection_avoirs_4"
     
        'Ouvrir le formulaire principal en mode modification et caché
        DoCmd.OpenForm "" & MPoint & "", acDesign, , , , acHidden
     
        'Source de donnée des sous-formulaire
        Forms("" & MPoint & "")![Sélection_dossier_sous_formulaire_4].Form.RecordSource = oDossier
        Forms("" & MPoint & "")![Sélection_Avoirs_sous_formulaire_4].Form.RecordSource = oAvoir
     
        'Copie les sous formulaires
        DoCmd.CopyObject , "" & SSDossier & "", acForm, "Sélection_dossier_sous_formulaire_4"
        DoCmd.CopyObject , "" & SSAvoir & "", acForm, "Sélection_Avoirs_sous_formulaire_4"
     
        'Sauvegarder le formulaire
        DoCmd.Close acForm, "" & MPoint & "", acSaveYes
    Le code renomme les sous formulaires mais je ne sais pas les rattacher au nouveau formulaire.

    J'ai essayé de modifier les noms des sous formulaires mais access dit qu'ils sont en lecture seule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms("" & MPoint & "")![Sélection_dossier_sous_formulaire_4].Form.Name = oDossier
        Forms("" & MPoint & "")![Sélection_Avoirs_sous_formulaire_4].Form.Name = oAvoir
    Merci pour votre aide et vos idées.

  2. #2
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    J'ai trouvé, il fallait utiliser SourceObject et non Name.

    Vous trouverez mon code corrigé ci-dessous :

    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
     'Attache les sous-formulaire avec les nouvelles tables
        Dim SSDossier, SSAvoir, MPoint As Variant
     
        SSDossier = "Selection_Dossier_" & Djour & "_" & Dheure & ""
        SSAvoir = "Selection_Avoir_" & Djour & "_" & Dheure & ""
        MPoint = "Selection_Pointage_" & Djour & "_" & Dheure & ""
     
        'Copie le formulaire principale et les sous-formulaires
        DoCmd.CopyObject , "" & MPoint & "", acForm, "Sélection_avoirs_4"
        DoCmd.CopyObject , "" & SSDossier & "", acForm, "Sélection_dossier_sous_formulaire_4"
        DoCmd.CopyObject , "" & SSAvoir & "", acForm, "Sélection_Avoirs_sous_formulaire_4"
     
        'Ouvrir les sous-formulaire en mode modification et caché
        DoCmd.OpenForm "" & SSDossier & "", acDesign, , , , acHidden
        Forms("" & SSDossier & "").Form.RecordSource = oDossier
        DoCmd.Close acForm, "" & SSDossier & "", acSaveYes
     
        DoCmd.OpenForm "" & SSAvoir & "", acDesign, , , , acHidden
        Forms("" & SSAvoir & "").Form.RecordSource = oAvoir
        DoCmd.Close acForm, "" & SSAvoir & "", acSaveYes
     
        'Ouvrir le formulaire principal en mode modification et caché
        DoCmd.OpenForm "" & MPoint & "", acDesign, , , , acHidden
     
        'Renomme les sous formulaires
        Forms("" & MPoint & "").[Sélection_dossier_sous_formulaire_4].SourceObject = SSDossier
        Forms("" & MPoint & "")![Sélection_Avoirs_sous_formulaire_4].SourceObject = SSAvoir
     
        'Sauvegarder le formulaire
        DoCmd.Close acForm, "" & MPoint & "", acSaveYes
    Lerico.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    SALUT,
    cherchant désesperement a realiser ce que tu arrive a faire, je voudrais te demander qq conseil.
    je souhaite reprendre ton code, mais juste pour copier les donnés du formulaire aves ces 4 sous formulaire.
    peux tu m'indiquer a quoi correspond djour et dheure? il s'agit de champs dans ta table?

    SSDossier = "Selection_Dossier_" & TeileNrID & "_" & Dheure & ""
    SSAvoir = "Selection_Avoir_" & TeileNrID & "_" & Dheure & ""
    MPoint = "Selection_Pointage_" & TeileNrID & "_" & Dheure & ""

    sinon est il necessaire de renommer les formulaire ou sous formulaire

  4. #4
    Membre régulier Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    Pour répondre à ta question, Djour et Dheure sont des variant qui ramène la date du jour et l'heure.

    Ceci me permet d'avoir des tables, formulaires et sous formulaires distinctes pour un seul utilisateur.

    Pour chaque utilisateur, les noms de table, formulaires et sous formulaires seront différents ce qui permet une saisie multi-utilisateur.

    LeRico

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/10/2009, 15h24
  2. Réponses: 5
    Dernier message: 06/08/2008, 15h11
  3. Réponses: 5
    Dernier message: 24/04/2007, 14h00
  4. Réponses: 23
    Dernier message: 14/03/2007, 19h02
  5. Réponses: 5
    Dernier message: 25/04/2006, 16h04

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