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

Macros et VBA Excel Discussion :

Variable de retour problèmatique entre Sub et Function


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut Variable de retour problèmatique entre Sub et Function
    Bonjour,

    Pour le moment, j'ai ma procédure principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Go()
     
         Dim rst As ADODB.Recordset
     
         Call ConnexionMySQL
         MsgBox(rst.Fields.Count)
     
    End Sub
    qui doit appeler ConnexionMySQL() qui doit retourner l'objet rst de type ADODB.Recordset (de ce que j'ai compris).

    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
    Function ConnexionMySQL() As ADODB.Recordset
     
         Dim cnx As ADODB.Connection
         Dim rst As ADODB.Recordset
     
         Set cnx = New ADODB.Connection
         Set rst = New ADODB.Recordset
     
         cnx.ConnectionString = "" _
                        & "DRIVER={MySQL ODBC 3.51 Driver}; " _
                        & "SERVER=localhost; DATABASE=mabase; " _
                        & "UID=login; PWD=password; "
         cnx.Open
         rst.Open "SELECT * FROM test;", cnx
     
         ' retour du recordset
         ConnexionMySQL = rst
     
    End Function
    Mais j'obtiens un beau message d'erreur :
    Erreur de compilation
    Utilisation incorrecte de la propriété
    Quelqu'un pourrait-il me dire ce qui ne va pas ?
    Merci d'avance

    @ bientôt !

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Comme ca peut etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Go()
     
         Dim rst As ADODB.Recordset
     
         set rst = ConnexionMySQL
         MsgBox(rst.Fields.Count)
     
    End Sub
    ++
    Minick

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut
    merci pour ton aide.

    je viens de tester... effectivement, cette syntaxe me parait beaucoup mieux.
    Malheureusement, j'ai toujours mon message d'erreur à la ligne ConnexionMySQL = rst


  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Re,

    Il faut faire la meme chose pour renvoyer le resultat peut etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set ConnexionMySQL = rst
    ++
    Minick

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut
    ça marche !!! merci Minick.

    bon faut quand même avouer que la gestion du return est super lourde en VBA !

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

Discussions similaires

  1. [XL-2007] comportement différent de Show entre Sub et Function
    Par vieux_syndique dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/08/2009, 06h42
  2. Réponses: 11
    Dernier message: 07/10/2006, 18h37
  3. [VB6]Transferts VARIABLES de TYPE Utilisateurs entre FORMS
    Par KNITTEL dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/03/2006, 14h21
  4. Comment faire un retour ligne entre des " ??
    Par DrTank dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 09/05/2005, 09h35
  5. variable de retour d'une procedure stocke
    Par yahia dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2004, 14h12

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