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

VB 6 et antérieur Discussion :

Type incompatible sur l'appel d'une procédure


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Type incompatible sur l'appel d'une procédure
    Bonjour tout le monde,

    J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub RemplirListeIngredients()
        BDRemplirListe "SELECT ingredient.id, ingredient.nom, ingredient.stock FROM ingredient ORDER BY nom DESC", listIngredients
    End Sub
    Je passe donc une chaine de caractère et un contrôle (liste déroulante)

    Mon programme ne va pas plus loin car il plante sur la l'appel de fonction en me laissant ce message d'erreur :

    Erreur d'exécution '13' : Type incompatible
    Voici le code de la procédure BDRemplirListe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub BDRemplirListe(ByVal sql As String, ByRef Liste As Control)
        Dim rsTable As Recordset
     
        If (TypeOf Liste Is ListBox) Or (TypeOf Liste Is ComboBox) Then
            Set rsTable = BD.OpenRecordset(sql, dbOpenSnapshot)
            Liste.Clear
            While Not rsTable.EOF
                Liste.AddItem rsTable(1)
                Liste.ItemData(Liste.NewIndex) = rsTable(0)
                rsTable.MoveNext
            Wend
        End If
    End Sub
    Par rapport à ce que je vous donne, savez-vous me dire quelle est l'erreur ?

    Si vous en avez besoin, je peux laisser l'entierté du programme.

    Merci d'avance.

    beegees

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Tu es sûr du nom de ton contrôle ? Tout le code se trouve dans la même form ?

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par OhMonBato Voir le message
    Tu es sûr du nom de ton contrôle ? Tout le code se trouve dans la même form ?
    Salut,

    Merci pour ta réponse.

    Le nom du contrôle est correcte.

    Tout le code ne se trouve pas dans la même form.

    J'ai essayé de mettre le nom du module devant le nom de la procédure, mais ça ne change rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub RemplirListeIngredients()
        moduleBaseDonnees.BDRemplirListe "SELECT ingredient.id, ingredient.nom, ingredient.stock FROM ingredient ORDER BY nom DESC", listIngredients
    End Sub
    Je te laisse mon programme, sais-tu y regarder stp ?

    Un tout grand merci d'avance.

    beegees

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Merci, mais je ne compte pas regarder ton programme dans son intégralité. Ta sub RemplirListeIngredients se trouve où ?

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par OhMonBato Voir le message
    Merci, mais je ne compte pas regarder ton programme dans son intégralité. Ta sub RemplirListeIngredients se trouve où ?
    Salut,

    Dans frmGestionIngredients :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub RemplirListeIngredients()
        BDRemplirListe "SELECT ingredient.id, ingredient.nom, ingredient.stock FROM ingredient ORDER BY nom DESC", listIngredients
    End Sub
    Merci
    beegees

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Un petit effort de réflexion tout de même...
    Je repose donc la question de manière plus précise :
    Ta sub RemplirListeIngredients se trouve où par rapport à ton contrôle listIngredients ? Dans la même form ? Comme je suppose que la réponse est non, tu dois préciser la form où se trouve ton contrôle dans l'appel de ta procédure.

  7. #7
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour Beegees,

    OhMonBato Tu es sûr du nom de ton contrôle ? Tout le code se trouve dans la même form ?
    Je crois que OhmonBato a raison.
    Si la procédure n'était pas dans la même form tu aurais eu un autre type d'erreur,celui-ci:

    "Procedure sub ou Fonction non définie"

    Ton erreur se situe bien sur l'élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     moduleBaseDonnees.BDRemplirListe "SELECT ingredient.id, ingredient.nom, ingredient.stock FROM ingredient ORDER BY nom DESC", listIngredients
    'et puis plus loin
     
    Public Sub BDRemplirListe(ByVal sql As String, ByRef Liste As Control)
    Type incompatible est bien entre 'listIngredients
    et 'ByRef Liste As Control

    Autre chose
    Pour complément à ta question précédente
    Comparaison de deux valeurs numériques ne fonctionnant pas

    Regarde ceci pour ton information
    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
     
       Dim chaine As String
       Dim Franc As Single
     
       'exemple
       'si
       chaine = "0,05"
       'faire
       Franc = Val (Str (chaine) )  'éh oui celà à l'air bizarre mais ça marche
       '*** Franc=0,05  la valeur numérique est identique à la valeur chaîne
     
       '*** A savoir quelques particularités du VB6
       chaine = "0,05"
       Franc = Val(chaine)
       '*** Franc=0 ce qui se trouve derrière la virgule est oublié
     
       Franc = "0,05"  'Franc=0,05 ne change pas
       '*** ou
       Franc = 0.05   'Franc=0,05 le point devient virgule
     
       chaine = Str(Franc)
       '*** chaine=" .05" avec un espace devant et un point
     
       chaine = CStr(Franc)
       '*** chaine="0,05" la chaîne est identique à la valeur numérique
    A+

  8. #8
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut iclic,

    Merci pour ce bon complément d'information.

    J'ai mis de côté la partie conversion, ça peut aider.

    Merci encore et bon fin de WE.

    beegees

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

Discussions similaires

  1. type incompatible lorsque j'appelle une procédure
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/04/2009, 12h45
  2. Réponses: 8
    Dernier message: 11/11/2008, 17h33
  3. Appel d'une procédure stockée ayant des arguments de type TABLE despuis du code C#
    Par rabddoul dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 23/10/2008, 10h47
  4. Réponses: 1
    Dernier message: 22/11/2006, 17h38
  5. Erreur "type incompatible" sur une fonction
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 11h59

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