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 :

Affecter une variable objet à une autre variable objet


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 180
    Par défaut Affecter une variable objet à une autre variable objet
    Bonjour,
    Je me demande si c'est possible de passer une variable dans un SET

    ex:
    Je reçois en paramètre trois valeur string NomFormulaire, NomObjet et le choix des données que je veux afficher.

    Dans ce code, j'ai une erreur "Qualificateur incorrect"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set NomFormulaire.NomObjet.Recordset = rs

    NomFormulaire et NomObjet sont reçu comme étant des string...je crois que le problême est là mais je ne sait pas quel type mettre...j'ai tenté la déclaration NomFormulaire as form mais sans succès

    Quelqu'un a une idée?

    Merci!

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 180
    Par défaut
    J'ai ceci dans un module:

    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
    41
    42
    43
    44
    45
    46
    Public Function RemplirListe(strChoixListe As String, strNomFormulaire As String, strNomObjet As String)
     
       On Error GoTo RemplirListe_Error
     
        Dim cnn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim SQL As String
     
        cnn.Open CurrentProject.BaseConnectionString
     
     
        Select Case strChoixListe
     
        Case "Prénom":
            SQL = "SELECT tblClients.Prénom FROM tblClients;"
     
            rs.Open SQL, cnn, adOpenStatic, adLockReadOnly
            Set strNomFormulaire.strNomObjet.Recordset = rs
    '        Set Form_frmAccueil.lstPrenom.Recordset = rs
     
        Case "Nom":
            SQL = "SELECT tblClients.Nom FROM tblClients;"
     
            rs.Open SQL, cnn, adOpenStatic, adLockReadOnly
            Set strNomFormulaire.strNomObjet.Recordset = rs
    '        Set Form_frmAccueil.lstNom.Recordset = rs
     
        Case "Âge":
            SQL = "SELECT tblClients.Âge FROM tblClients;"
     
            rs.Open SQL, cnn, adOpenStatic, adLockReadOnly
            Set strNomFormulaire.strNomObjet.Recordset = rs
    '        Set Form_frmAccueil.lstAge.Recordset = rs
     
        End Select
        rs.Close
        cnn.Close
     
     
       On Error GoTo 0
       Exit Function
     
    RemplirListe_Error:
     
        MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure RemplirListe of Module modRequetes"
    End Function

    et dans mon formulaire j'ai cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lstPrenom.RowSource = RemplirListe("Prénom", me.form.name, lstPrenom)

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 180
    Par défaut
    Si j'entre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Form_frmAccueil.lstPrenom.Recordset = rs
    directement sans variable, ca fonctionne très bien et lorsque je met les variables et que je regarde le contenu des variables, il y a bel et bien la même chose mais il me semble que le SET ne veux pas prendre le contenu de la variable mais son nom...j'ai l'impression que c'est là le problême mais je me demande si quelqu'un n'aurait pas une idée?

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 180
    Par défaut
    Non fonctionnel..je croyais avoir trouvé la solution mais ce n'est pas le cas

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Set ne fonctionne qu'avec des variables objets.
    Si tu veux passer un objet formulaire en paramètre d'une fonction, depuis le code d'un formulaire
    déclare le paramètre de type Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function LaFonction(fm As Form)
        MsgBox "Formulaire " & fm.Name
    End Function
    Code exemple d'appel : Sélectionner tout - Visualiser dans une fenêtre à part
    LaFonction Me.Form

    Tu peux aussi, à partir du nom du formulaire, récupérer un objet Form.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function LaFonction(strFm As String)
        Dim fm As Form
        Set fm = Forms(strFm)
        MsgBox "Formulaire " & fm.Name
    End Function
    Code exemple d'appel : Sélectionner tout - Visualiser dans une fenêtre à part
    LaFonction Me.Name
    A+

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 180
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set frmNomFormulaire = Forms(strNomFormulaire)
    n'a pas l'air de fonctionner en vba

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/11/2012, 19h44
  2. Réponses: 0
    Dernier message: 19/11/2012, 11h57
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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