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 :

Effectuer une recherche Approximative


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut Effectuer une recherche Approximative
    Bonjour,

    J'ai une problématique à vous soumettre car je ne voit pas comment faire.

    Via une TextBox j'effectue une chercher dans un DataGrid.

    Cette recherche est une recherche de numéro de série.

    Dans mon le logiciel d’où j’extrais le données, il y a eu des erreur de faite.

    Soit il manque la moitié du S/N, soit le début, soit la fin.

    J'aimerai que la recherche, qui pour le moment remonte la ligne identique au texte inscrit dans la TextBox, remonte les lignes ce rapprochant le plus de ce qu'il y a inscrit dans la recherche.

    Comment réalisé cette action ?

    Voici le code que j'ai pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub scanbox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles scanbox.TextChanged
            BSource.Filter = "[N° Série] like '" & scanbox.Text & "*'"
        End Sub
    Merci d'avance,

    Atoxis

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    J'aurai plutôt dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BSource.Filter = "[N° Série] like '%" & scanbox.Text & "%'"
    C'est uniquement le début ou la fin qu'il manque ?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    Oui le début ou la fin voir, et je viens de m'en rendre compte, le début et la fin tout dépend de la maque du matériel.

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Du coup ça fonctionne ?

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    BSource.Filter = "[N° Série] like '%" & scanbox.Text & "%'"

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    Oui sur le principe ça fonctionne mais pas comme souhaité:

    dans ma basse j'ai le code :
    MY19HMCZ95752440

    Je scan le code
    MY19HMCZ95752440M

    La ligne ne remonte pas.

    en revanche si je tape des chiffre au hasard dans la TextBox j'ai bien les ligne qui comporte c'est chiffre qui remonte

    J'ai également des codes de ma base qui comporte des tiret alors que le code scan n'en comporte pas exemple:
    Le code Tapé par l'ancien gestionnaire de parc:
    CN-0FC529-75572-666-7DTS
    ou encore
    75572-666-7DTS

    Le code scanné par la douchette:
    CN0FC529755726667DTS

  6. #6
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    C'est parceque j'ai compris l'inverse, je crois que c'est dans ta base que tu avais "plus".

    Avec un LIKE, l'ordre des opérandes est important.
    Ceci devrait marcher du coup :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    BSource.Filter = scanbox.Text & " like %[N° Série]%"

    Si tu as des tirets en base je ne peux rien faire pour toi... ça va faire un algorithme très compliqué pour rien.
    Deux options selon moi :
    1/ Tu fais un correctif en base pour supprimer les tirets
    2/ Tu récupères toutes les lignes de ta table dans une collection (en mémoire donc), tu supprimes les tirets des lignes qui en possède, et tu recherches sur cette collection et non plus en base. C'est moins performant, ça a des défauts, mais ça marcherait...

Discussions similaires

  1. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  2. Comment effectuer une recherche dans une listBox?
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 19/05/2006, 16h15
  3. liste deroulante pour effectuer une recherche
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/04/2006, 09h27
  4. Effectuer une recherche avec jEdit
    Par lyon72 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 3
    Dernier message: 04/04/2006, 18h44
  5. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 15h06

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