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

Windows Forms Discussion :

[vb 2005]requête avec 2 paramètres


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut [vb 2005]requête avec 2 paramètres
    bonjours
    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (' &  enc &  '))
    avec enc une variable de type string déclaré dans vb qui contient une chaine de caractère par exemple (6528948, 5897546, 4589621)

    Pour afficher les données de ma requète je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TRECU1TableAdapter.FillIndivEncaiss(Me.BdUAreçuDataSet.TRECU1, (DateEncaiss.DateTimePickerEncaiss.Value.Date))
    , avec DateEncaiss.DateTimePickerEncaiss.Value.Date la valeur du paramètre Date

    Mais ma requête me rammène une erreure:
    type de données incompatible dans l'expression du critère
    Est il possible d'utiliser ma variable enc dans ma requête? Si oui,comment résoudre mon problème?

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut reponse
    Oui tu peux utiliser ta variable dans ta requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim requete as string
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN ('" &  enc &  "'))"
    Mais au passage je pense que tu peux mettre = au lieu de IN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim requete as string
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] ='" &  enc &  "')"

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut ça marche toujours pas
    desolé mais j'ai le même problème.
    toujours la même erreure

  4. #4
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    ET bien alors je pense que c est pas un probleme de programmation, mais de SQL.

    Il doit y avoir un champ qui coince.

    Sinon montre un peu plus de code histoire de voir si il y a pas autre chose

  5. #5
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    question bete, mais N°Police est bien un entier, dans la base?

    Car si c'est une chaine de caracteres, la notation de enc sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "('6528948', '5897546', '4589621')"

    M'enfin, apres, c'est surement pas ca

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut je sais vraiment pas quoi faire
    c'est étrange.
    je n'arrive pas pourtant je pense qe mon code est parfait.
    quand je fais le ndebogage pas à pas ma variable enc est belle et bien rempli. mais au moment de fair la condition au niveau de la requâte ya erreur

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    question bete, mais N°Police est bien un entier, dans la base?

    Car si c'est une chaine de caracteres, la notation de enc sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "('6528948', '5897546', '4589621')"

    M'enfin, apres, c'est surement pas ca
    oui N°police est un entier dans la base. je vais essayer avec les cotes pour voir ce que cela donne

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut informations
    toujours la même erreur.
    pour plus de détails, la variable enc contient des données qui viennent d'une autre base de données AS400.
    alors que je fait le select de ma requâte sur une base de données access.

  9. #9
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    si c'est un entier, la notation d'origine est la bonne ...

    Par contre, est-ce que si tu enlèves le critère sur enc, ca marche ? Parce que je me disais, si ça se trouve, le pb vient du format de date

    sinon, prends ta requete, essaye de la faire passer sous access, et une fois qu'elle marche, essaye de voir les differences entre ta requete et le code...d'abord uniquement avec des valeurs en dur

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut PAREIL
    Citation Envoyé par pvialatte Voir le message
    si c'est un entier, la notation d'origine est la bonne ...

    Par contre, est-ce que si tu enlèves le critère sur enc, ca marche ? Parce que je me disais, si ça se trouve, le pb vient du format de date

    sinon, prends ta requete, essaye de la faire passer sous access, et une fois qu'elle marche, essaye de voir les differences entre ta requete et le code...d'abord uniquement avec des valeurs en dur
    ma requête marche parfaitement sans le critère enc. le problème ne vient donc pas de la date.
    Aussi lorsque je prend une seule valeur pour le critère enc par exemple
    WHERE ([date] = ?) AND ([N°police] = 76000402) , cela marche parfaitement. le problème doit se trouver surement au niveau de la chaine de caractère ou de la clause IN

  11. #11
    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
    Points : 3 685
    Points
    3 685
    Par défaut
    Moi je crois que j'essaierais (Sans les ' autour de Enc et Enc valant par exemple 12435,56643,8658 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim requete as string
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (" &  enc &  "))"

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par OhMonBato Voir le message
    Moi je crois que j'essaierais (Sans les ' autour de Enc et Enc valant par exemple 12435,56643,8658 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim requete as string
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (" &  enc &  "))"
    desolé mais meme quand j'exécuse la requête sans les ' l'ordinateur lui même remplace les " par '.
    et il ya toujours l'erreur

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut j'ai une idée essayons de la developper
    Citation Envoyé par OhMonBato Voir le message
    Moi je crois que j'essaierais (Sans les ' autour de Enc et Enc valant par exemple 12435,56643,8658 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim requete as string
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (" &  enc &  "))"
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE     ([date] = ?) AND ([N°police] = ?)
    cest a dire on a deux paramètre maintenant
    comment faire pour attribuer la chaine de caractère a mon deuxième paramètre puisque N°police est de type entier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TRECU1TableAdapter.FillIndivEncaiss(Me.BdUAreçuDataSet.TRECU1, DateEncaiss.DateTimePickerEncaiss.Value.Date, enc)
    enc ne peut pas etre attribuer a N°police dans ce cas

  14. #14
    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
    Points : 3 685
    Points
    3 685
    Par défaut
    Si pour essai tu mets ça comme requête, ça marche ou pas (enfin en mettant des nombres compatibles avec ta base de données bien sûr)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (123456,789456,321654))"

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut j'y suis presque merci
    Citation Envoyé par OhMonBato Voir le message
    Si pour essai tu mets ça comme requête, ça marche ou pas (enfin en mettant des nombres compatibles avec ta base de données bien sûr)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    requete = "SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (123456,789456,321654))"
    la requête s'exécute quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT     [N°reçu], [N°police], [N°client], [N°caissière], [date], moderègl, somrègl, timbre
    FROM         TRECU
    WHERE     ([date] = ?) AND ([N°police] IN (123456, 789456, 321654))
    avec des espace après les virgules.
    mais quand je met (enc) j'ai l'erreure
    Aucune valeur donnée pour un ou plusieurs des paramètres requis.
    Alors que je dois forcement utiliser une variable vu que je vais chercher N°police parmis 10 000 numéros souvent.
    comment utiliser ma variable dans ma requête pour quelle soit prise en compte?

  16. #16
    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
    Points : 3 685
    Points
    3 685
    Par défaut
    Et que vaut Enc donc dans ton cas ? Peux tu nous montrer le code où tu affectes une valeur à Enc ?
    En tout cas, ça semble prouver que les ' ne sont pas nécessaires comme je le disais.

Discussions similaires

  1. [iReport] requête avec un paramètre d'une classe
    Par Elasnaoui dans le forum Documents
    Réponses: 0
    Dernier message: 17/09/2009, 17h54
  2. [Débutant] requête avec un paramètre
    Par LesLemmings dans le forum iReport
    Réponses: 3
    Dernier message: 13/08/2009, 11h46
  3. Requête avec plusieurs paramètres
    Par jcaction dans le forum SQL
    Réponses: 9
    Dernier message: 27/10/2008, 07h24
  4. Requête avec plusieurs paramètres d'un même champ d'une table
    Par jb.julien dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/08/2007, 09h43
  5. [ADO/Access] Appel d’une requête avec des paramètres
    Par Taxenna dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/12/2004, 14h58

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