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 :

Passer une connexion en argument d'une fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 95
    Points : 60
    Points
    60
    Par défaut Passer une connexion en argument d'une fonction
    Bonjour,

    J'essai de passer une connection en argument dans cette fonction :

    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
    47
    48
    49
    50
     
    Function update_injecteur(ByRef cnn As ADODB.connection)
     
     
        Dim rst As New ADODB.Recordset
     
        Dim requetteSQL As String
     
        Dim idOp As String
        idOp = saisi.Label8.Caption
     
        Dim idLo As Integer
     
        If saisi.Label8.Caption = "-1" Then
            idLo = -1
        Else
            idLo = saisi.ComboBox1.Value
        End If
     
     
        requetteSQL = "SELECT injecteur.idInjecteur, injecteur.numeroSerie, injecteur.dateDebutCreation, injecteur.dateFinCreation, injecteur.numCycleEnCours, injecteur.idLot " _
        & " FROM injecteur, lot " _
        & " WHERE idInjecteur NOT IN (SELECT idInjecteur FROM realisationoperation WHERE idOperation<" & idOp & ") " _
        & " AND lot.idLot =" & idLo & " " _
        & " AND injecteur.idLot = lot.idLot;"
     
        'ListBox1.ColumnCount = 2
        'ListBox1.BoundColumn = 2
        'ListBox1.ColumnWidths = ";0"
     
        Dim i As Integer
     
        'i = 1
     
        Debug.Print requetteSQL
     
        rst.Open requetteSQL, cnn
     
        saisi.ListBox1.Clear
     
        While Not rst.EOF
            saisi.ListBox1.AddItem (rst.Fields("numeroSerie"))
            'Me.ListBox1.list(0, 1) = rst.Fields("idInjecteur")
            rst.MoveNext
            'i = i + 1
        Wend
     
        rst.Close
     
    End Function
    J'appelle ma fonction ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Option Explicit
     
    Dim conn As ADODB.connection
     
    Private Sub ComboBox1_Change()
     
    Set conn = connection
     
    update_injecteur (conn)
    Mais cela ne marche pas. J'obient l'erreur 'incompatibilité de type' à la ligne update_injecteur(conn). Je ne comprends pas pourquoi, j'ai essayé (au cas où...) ByVal au lieu de ByRef, cela ne change rien.

    Je précise que si je créer une nouvelle connection à chaque appelle de la fonction update_injecteur cela marche, mais c'est un peu lent et c'est surtout très sale comme technique !

    Auriez vous svp une idée d'où pourrai venir mon problème ?

    Merci pour votre aide.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonsoir,

    Essaye d'enlever ces parenthèses disgracieuses:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update_injecteur (conn)
    Cordialement,

    Tirex28/

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 95
    Points : 60
    Points
    60
    Par défaut
    Merci, effectivement cela fonctionne. Après je ne pense pas qu'elle soit non plus "disgracieuse". La plupart des fonctions prennent leur arguments entre parenthèse. Alors pourquoi faire cette distinction ici ?


    Merci encore !

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

Discussions similaires

  1. Passer variable PHP en argument d'une fonction JS
    Par Vespiras dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 31/01/2013, 09h44
  2. passer un iterator en argument d'une fonction
    Par manitor dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/09/2009, 14h42
  3. passer un tableau en argument dans une fonction
    Par rogerio dans le forum Débuter
    Réponses: 6
    Dernier message: 30/10/2008, 12h15
  4. Passer un objet en argument d'une servlet
    Par julien1311 dans le forum Servlets/JSP
    Réponses: 16
    Dernier message: 06/08/2007, 16h30
  5. une url comme argument d'une fonction
    Par khayyam90 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2004, 20h15

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