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.NET Discussion :

Requête paramétré avec LIKE


Sujet :

VB.NET

  1. #1
    Membre à l'essai Avatar de Bast-Eo
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Requête paramétré avec LIKE
    Bonjour à tous,
    Je suis actuellement en stage et je dois développer une application avec une base de données.
    Mon problème se situe au niveau d’une requête.
    Contexte :
    Je possède un Crystal Report qui doit m’afficher une liste d’expédition. Jusque là rien de bien compliqué. Mais je voudrai que cette liste soit faite en fonction d’une date choisie par l’utilisateur dans un datetimepicker.
    J’ai donc fait une requête paramétré avec une date dans le tableadapter que j’ai créé pour l’état. Je récupère la date et j’envoi la requête pour afficher les bons résultats.
    Seulement voila le datetimepicker lors des enregistrements d’une expédition, enregistre la date sous un format « JJ/MM/AAAA hh :mm » dans ma base de donnée. Donc lors de ma requête il ne trouvé pas de résultats d’expéditions avec la date = celle choisie, car l’heure « dérangé » si je puis dire.
    J’ai donc pensé mettre en place un LIKE à la place du = afin « d’ignoré » l’heure entré dans la base par le datetimepicker.
    J’ai donc établie la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Client.nom, Client.adresse, Client.CP, Client.ville, Expedition.date, Expedition.nbTotalColis, Expedition.nbTotalPortes
    FROM Client INNER JOIN Expedition ON Client.nCompteClient = Expedition.numCompteClient
    WHERE Expedition.date LIKE '*13/02/2009*';
    Ici je rentre la date en dure pour tester la requête directement sous Access. Impeccable cela me retourne tous les résultats attendus.
    Je rentre donc cette même requête dans Visual Studio (dans mon table adapter) comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Expedition.date LIKE  :datechoisie;
    :datechoisie étant le nom de ma variable paramétré. Je teste dans mon état à l’aide du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'recupere la date
           datechoisie = dtpdatechoix.Value.Date
           'avec parametre de la combo box
           myadapter.Fill(dataset.ExpEditTab, datechoisie)
           'creer objet etat
           MonEtat = New CRExpTabEdit
           'source de donnee
           MonEtat.SetDataSource(dataset)
           'affecter l'etat au controle viewer
           ViewerExpTabEdit.ReportSource = MonEtat
    VS n’accepte pas la requete
    Ma question est donc comment passé en parametre la date en « ignaurant » l’heure ?
    Sinon puis-je configurer le datetimepicker pour qu’il n’enregistre que la date sans l’heure dans ma base de données, et comment ?
    J’ai essayé de faire en sorte que mon parametre datechoisie soit directement sous la forme avec les cotes et les asterisques comme ma requête sous access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    datechoisie = "'*" & datechoisie & "*'"
    myadapter.Fill(dataset.ExpEditTab, datechoisie)
    mais sans succes.
    J’ai testé datechoisie en format date ou string, rien ne marche
    J’ai l’impression que mon LIKE est ignauré sous VB alors qu’il marche sous Access.
    merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Si tu essayais % au lieu de *

  3. #3
    Membre à l'essai Avatar de Bast-Eo
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    après avoir retenté avec % voici mes résultats :

    -sous access la requete ne renvoi plus aucun résultat
    -sous VB cela n'a pas changé je n'est pas le résultat voulu non plus

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Sous Access on doit utiliser les *
    En VB on doit utiliser %.

    Voici un exemple d'un bout de code que j'ai créé et qui fonctionne très bien.
    Utilises Like ... %

    [CODE]..... Nomcli like '" & TxTClient & "'[CODE]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    oupssss

    Désolée j'ai omis les % ....

    Mon Exemple : nomcli like '%" & TxTClient & "%'

    Donc dans ton cas : where expedition.date Like '%" & date.choisie & "%'

  6. #6
    Membre à l'essai Avatar de Bast-Eo
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    merci Astragale je venais de le tester de la façon suivante aussi :

    ...WHERE Expedition.[date] LIKE '%" & :datechoisie & "%'

    mais VB me retourne une erreur "Impossible de convertir l'entrée Date/Heure valide. la fonction TO_DATE peut être requise"

    je teste donc avec adresse a la place de Expedition.[date]
    et là la requête est acceptée

    je pense donc que VB n'accepte pas de requête avec un like qui contient un paramètre au format date

    alors comment puis-je utiliser la fonction TO_DATE ou corriger ce problème ??

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Premièrement je vois que tu as de : dans ta requête, est-ce une erreur de transcription ? ...WHERE Expedition.[date] LIKE '%" & :datechoisie & "%'


    Deuxièment tu peux convertir ta date avant de la passer en requête du genre :

    strDate=Format(datechoisie , "yyyy/mm/dd" ---- le format peux changer selon tes paramètres régionaux.

    Par la suite : WHERE Expedition.[date] LIKE '%" & strdate & "%'

    Ça devrait fonctionner

  8. #8
    Membre à l'essai Avatar de Bast-Eo
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    les deux points ( : ) devant datechoisie indique à vb que c'est une variable paramètre dans la requête je l'ai déjà fait pour d'autre requête.

    merci encore

  9. #9
    Membre à l'essai Avatar de Bast-Eo
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    yahou voila j'ai trouvé la solution
    voici ma requête, j'ai du transformer le format date en string par contre je vais tester en remettant au format date

    SELECT Client.nom, Client.adresse, Client.CP, Client.ville, Expedition.[date], Expedition.nbTotalColis, Expedition.nbTotalPortes
    FROM (Client INNER JOIN
    Expedition ON Client.nCompteClient = Expedition.numCompteClient)
    WHERE Expedition.[date] LIKE :datechoisie & "%"

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/10/2006, 13h35
  2. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39
  3. Requête Paramétrée avec DropDownList
    Par kirgan dans le forum Access
    Réponses: 2
    Dernier message: 24/04/2006, 16h22
  4. [WD8] Requêtes paramétrées avec accès odbc direct
    Par devalender dans le forum WinDev
    Réponses: 5
    Dernier message: 20/12/2005, 12h25
  5. Déterminer une requête paramétrée avec LIKE
    Par priest69 dans le forum Access
    Réponses: 4
    Dernier message: 24/10/2005, 19h29

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