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 :

Récupérer les noms et sources de sous formulaire


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 Récupérer les noms et sources de sous formulaire
    Bonjour,

    J'ai un formulaire qui contient deux sous-formulaires.
    Je sais récupérer le nom du formulaire mais comment récupére-t-on les noms et les sources des sous formulaires.

    J'ai essayé un début de code mais cela ne marche pas :
    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
    Function Quitter_Pointage()
     
        Dim strFormName, ssFormName1, ssFormName2 As String
        Dim frmCurrentForm As Form
        Dim ssCurrentForm As SubForm
     
        Set frmCurrentForm = Screen.ActiveForm
        Set ssCurrentForm = Screen.ActiveForm
     
        strFormName = frmCurrentForm.Name
        ssFormName1 = ssCurrentForm.Name
     
        MsgBox "" & strFormName & " - " & ssFormName1 & ""
     
    End Function
    Merci pour votre aide,

    LeRico

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Une piste :

    Les sous forms sont des 'control' donc le code ci-dessous devrait t'aider à trouver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim c as control
    for each c in frmCurrentForm.controls
       if c.ControlType = mettre ici le nombre correspondant à type Sous-Form
         debug.print c.name
       end if
    next c
    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 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
    Merci pour ton code.

    Mais je n'arrive pas à trouver le moyen de ressortir les noms et sources des sous formualires.

    Que veux tu dire par
    mettre ici le nombre correspondant à type Sous-Form
    Est-le nombre de sous formulaires dans le formulaire ?

    LeRico

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Chaque controle à un Type (ex : Texte, Liste déroulante, etc...) et ce type est identifié par un code numérique (ex : 10) mais je ne sais pas le code qui représente un controle de type Sous-Formulaire.

    Le plus simple est de faire le test suivant (lance la code avec un bouton que tu ajoute à ton form)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim c as control.
    debug.print me.name:'Nom du form courrant
    for each c in me.control
       debug.print c.name, c.controltype
    next c
    avec le nom tu vas savoir quel est le sous-form et tu connaitra le code du type.

    Il y a des constantes VBA du genre dbText qui sont plus parlante qu'un nombre mais je ne les connait pas.

    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.

  5. #5
    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 tout le monde,

    La valeur du type subform est acSubform

    voici un extrait d'un de mes codes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim oControl As Control
    For Each oControl In Me.Controls
        With oControl
            If .ControlType = acSubform Then
                debug.print .Form.name
            End If
        End With
    Next oControl
    Que veut-tu dire par source des sous formulaires ?

    A+

  6. #6
    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
    Merci pour vos réponses.
    Je vais tester les codes ce matin.

    Pour répondre, à la question de CAMIC
    Que veut-tu dire par source des sous formulaires ?
    Par sourcen j'entend le nom de la table ou de la requète rattaché au sous formulaire.

    A+

    LeRico

  7. #7
    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
    C'est parfait. J'ai réussit à me débloquer.

    Je met mon code 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
     'Récupère les noms des sous-formulaires
        Set frmCurrentForm = Screen.ActiveForm
     
        strFormName = frmCurrentForm.Name
     
        For Each c In frmCurrentForm.Controls
     
            If c.ControlType = acSubform Then
     
                Set rst = CurrentDb.OpenRecordset("Parametres_Multi")
     
                    rst.AddNew
                    rst!Formulaire = strFormName
                    rst!Sous_Formulaire = c.SourceObject
                    rst.Update
     
            End If
     
        Next c
    Je stocke les noms des sous-formulaires dans une table pour recherche les sources.

    Merci.

    LeRico

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2015, 13h58
  2. Récupérer les noms des champs formulaires
    Par Kestion100 dans le forum VBA Word
    Réponses: 1
    Dernier message: 04/05/2015, 11h23
  3. Récupérer les noms des champs formulaires
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/05/2015, 11h22
  4. Récupérer les noms des vues sous Oracle
    Par Remedy dans le forum SQL
    Réponses: 10
    Dernier message: 07/12/2007, 18h22
  5. Récupérer le nom de l'utilisateur sous linux
    Par Michaël dans le forum POSIX
    Réponses: 7
    Dernier message: 25/12/2003, 21h38

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