Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Général VBA

Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.

Réponse
 
Outils de la discussion
Vieux 08/09/2008, 11h47   #1 (permalink)
Membre du Club
 
Date d'inscription: mars 2006
Messages: 93
Par défaut function qui ne marche plus avec un 2ème paramètre

Bonjour à tous,

J'ai une fonction qui marche parfaitement :

Code :
Function get_info(idInformation As Integer)
 
 
 
    Dim conn As ADODB.connection
    Set conn = connection
    
    Dim requetteSQL As String
    Dim rst As New ADODB.Recordset
    
    
    requetteSQL = "SELECT idInformation,libelle " _
    & " FROM information;"
 
    rst.Open requetteSQL, conn
 
   
    rst.Close
 
    
    requetteSQL = "SELECT remonter.valeur " _
    & " FROM realisationoperation,remonter,lot,information,injecteur " _
    & " WHERE information.idInformation='" & idInformation & "'" _
    & " AND information.idInformation = remonter.idInformation " _
    & " AND realisationoperation.idInjecteur = injecteur.idInjecteur " _
    & " AND remonter.idRealisationOperation = realisationoperation.idRealisationOperation " _
    & " AND lot.numeroSerie = '" & Range("C8") & "' " _
    & " AND lot.idLot = injecteur.idLot " _
    & " ;"
                    
    rst.Open requetteSQL, conn
            
    Debug.Print requetteSQL
    Dim i As Integer
    i = 13
            
    effacer_tableau
            
        
    While Not rst.EOF
        
        Range("D" & i & "") = rst.Fields("valeur")
        i = i + 1
        rst.MoveNext
        
    Wend
 
    rst.Close
 
 
 
 
End Function
 
 
 
Que j'appelle de la manière suivante :

Code :
  get_info (Worksheets("Feuil2").Range("D1").Value)

J'aimerai y ajouter un 2ème paramètre qui permettrai de dire à quel endroit je souhaite que mes valeurs soit affiché.

Je modifie donc ma fonction (et peu importe si je n'utilise pas encore le nouveau paramètre dans ma fonction) :

Code :
 
Function get_info(idInformation As Integer, lettre_resultat As String)
 
 
 
    Dim conn As ADODB.connection
    Set conn = connection
    
    Dim requetteSQL As String
    Dim rst As New ADODB.Recordset
    
    
    requetteSQL = "SELECT idInformation,libelle " _
    & " FROM information;"
 
    rst.Open requetteSQL, conn
 
   
    rst.Close
 
    
    requetteSQL = "SELECT remonter.valeur " _
    & " FROM realisationoperation,remonter,lot,information,injecteur " _
    & " WHERE information.idInformation='" & idInformation & "'" _
    & " AND information.idInformation = remonter.idInformation " _
    & " AND realisationoperation.idInjecteur = injecteur.idInjecteur " _
    & " AND remonter.idRealisationOperation = realisationoperation.idRealisationOperation " _
    & " AND lot.numeroSerie = '" & Range("C8") & "' " _
    & " AND lot.idLot = injecteur.idLot " _
    & " ;"
                    
    rst.Open requetteSQL, conn
            
    Debug.Print requetteSQL
    Dim i As Integer
    i = 13
            
    effacer_tableau
            
        
    While Not rst.EOF
        
        Range("D" & i & "") = rst.Fields("valeur")
        i = i + 1
        rst.MoveNext
        
    Wend
 
    rst.Close
 
 
 
 
End Function
Que j'appelle ainsi :

Code :
 
    Dim lettre As String
    lettre = "D"
    get_info (Worksheets("Feuil2").Range("D1").Value,lettre)
J'obtiens l'erreur suivante :

Citation:
Erreur de compilation,
Attendu : =
pour la ligne get_info...

Je ne comprends pas ou est le problème, ça parait pourtant simple, non ?

Si vous avez une idée, je suis preneur,

Merci d'avance.
Zorgloub est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/09/2008, 13h28   #2 (permalink)
Membre du Club
 
Date d'inscription: mars 2006
Messages: 93
Par défaut

punaise... j'avais des parenthèses en trop... les parenthèses servent pour renvoyer une valeur. Il fallait le savoir !

Zorgloub est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/09/2008, 10h41   #3 (permalink)
Rédacteur/Modérateur
 
Avatar de Antoun
 
Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 478
Par défaut

Oui, c'est un des trois ou quatre principaux pièges de VB. Les parenthèses sont pour les fonctions... quand elles sont utilisées comme des fonctions, donc pour le résultat renvoyé.

Toi tu utilises getInfo comme une Sub, donc pas de parenthèses.
__________________
Antoun
Expert SQL, BO, Essbase
  • Traduction de Intégrez un modèle de calcul à vos requêtes SQL sous Oracle
  • Article Jeux de caractères et collations sous MySQL 5
  • Livre Guide complet MySQL 5, par Antoine Dinimant, éd. MicroApplication
http://antoun.developpez.com

Dernière modification par Antoun ; 09/09/2008 à 11h26
Antoun est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/09/2008, 23h51   #4 (permalink)
Membre émérite
 
Avatar de JackOuYA
 
Date d'inscription: juin 2008
Messages: 948
Par défaut

Citation:
Envoyé par Antoun Voir le message
...
Toi tu utilises getInfo comme une Sub, donc pas de parenthèses.
Bonsoir, en plus cette fonction ne renvoit rien remplace tes Function/end Function par Sub/end Sub cela sera plus clair
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Général VBA

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide