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 :

[VB6] Faire une recherche


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 49
    Points
    49
    Par défaut [VB6] Faire une recherche
    Bonjour à tous,

    Voilà, sur une feuille, j'affiche les informations relatives à un client (à l'aide d'un recordset) et j'aimerais faire une sorte de InputBox mais si possible avec une liste de clients. Bref l'utilisateur entre un nom et il a la liste des clients en dessous pour le retrouver et il appuie sur Ok...avez-vous une idée simple pour réaliser cela? Merci d'avance

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Où se situe ton problème ?
    Dresser la liste des clients ?
    si tu sais la dresser (tu ne l'as pas dit !) : l'afficher pour permettre un choix ?
    Si tu ne sais ni l'un, ni l'autre, il va te falloir commencer par faire un tour dans la FAQ, je le crains !
    Montres-nous le code que tu as déjà écrit !

    Je pars quand même du principe selon lequel tu sais dresser la liste et que tu te demandes comment l'afficher pour permettre un choix :
    Alors : un cadre (dont la propriété visible est True ou False selon le contexte que tu décides) et, dans ce cadre, une listBox affichant les articles parmi lesquels tu veux que soit fait le choix, c'est tout.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    qu'entends-tu par cadre? tu veux dire une nouvelle feuille?


    En fait, mon programme m'affiche client par client...et je peux parcourir les différents clients. Et moi j'aimerais qu'en cliquant sur un bouton par exemple, j'ai une liste de noms de client, je sélectionne un nom et il m'affiche les infos de ce client...et je peux continuer à naviguer comme au début...

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    aussi, j'ai une autre question mais si tu sais y répondre, ça empêcherait que je mette une discussion en plus sur le forum!

    Voilà, j'aimerais empêcher à l'utilisateur d'entrer certains caractères dans une TextBox. Je sais qu'il est possible de réaliser cela avec le code Ascii mais j'ai oublié comment faire...? Par exemple, pour empêcher l'utilisateur d'entrer des chiffres, je sais qu'il fallait faire If.....CodeAscii > xxxx et CodeAscii< xxxx then bloquer.... mais je ne sais plus du tout comment on gère cela

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ce sont en effet 2 questions différentes !
    On en reste ici à la première : un cadre ? un "Frame" en anglais (aide en ligne)

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et moi j'aimerais qu'en cliquant sur un bouton par exemple, j'ai une liste de noms de client, je sélectionne un nom et il m'affiche les infos de ce client...
    Je réponds à ça.
    Pour faire ça, je mets les noms dans une listbox ou un combo. La propriété MatchEntry te permet de féfinir comment se fera la recherche dans la liste (regarde dans l'aide)
    Pour afficher les données correspondant à une personne, je crée autant de textbox que de renseignements et pour chaque renseignement lu, je l'affiche dans la textbox correspondante. Tu peux placer tes contrôles dans un cadre ou dans une form.
    Précise tes difficultés à faire ça

    A+

  7. #7
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par boudincweole10
    En fait, mon programme m'affiche client par client...et je peux parcourir les différents clients. Et moi j'aimerais qu'en cliquant sur un bouton par exemple, j'ai une liste de noms de client, je sélectionne un nom et il m'affiche les infos de ce client...et je peux continuer à naviguer comme au début...
    Et si tu regardais un peu les cours... Dans mon praticiel "Initiation à l'accès aux données" tu as ce que tu veux faire, expliqué ligne à ligne:
    - 1 listbox avc pour source soit un Adodc, soit un DataEnvironment, soit un un recordset créé par code.
    - Des TextBox qui affiche les données de l'enregistrement correspondant à l'item sélectionné de la LisBox.
    - Liste et zones de texte synchronisées.
    - Des boutons de navigation.
    - et même un timer pour faire clignoter un libellé, pour s'ammuser.

    Bref, un peu de recherche, et le réflexe "cours", et bien sûr un tout petit peu d'effort .

    Le tout est accessible par l'adresse en signature.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Et bien j'utilise votre cours en fait...mais mon problème n'était pas les boutons pour parcourir les clients...mais simplement la recherche d'un client. Ce que je n'arrive pas à faire, c'est créer une textbox dans laquelle l'utilisateur entre le nom du client à rechercher et que si le nom existe dans la liste, il le surligne...et là il suffirait de cliquer sur ce nom. Mais merci quand mm pr votre précieuse aide!!

  9. #9
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Si tu connaîs le nom du client que tu veux rechercher, la méthode find est facile à utiliser. Avec un bouton de commande ajouté à frmSQL, cela donne ce qui suit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Command1_Click()
      rsAuthors.MoveFirst
      rsAuthors.Find "Author='Lloyd'"  'nom du champ BD = "nom à rechercher"
      MsgBox rsAuthors.AbsolutePosition
    End Sub
    Ceci étant, cela n'est pas d'un très grand intérêt dans la mesure où tu peux parcourir la liste, sauf si tu as quelques celtaines ou milliers d'items.

    Tu peux améliorer la chose en utilisant l'opérateur "Like" et l'évènement "Change" d'une zone de texte, mais le mieux serait probablement d'utiliser l'API sendMessage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub txtRechercher_Change()
    'Appel API
      Dim entryNum As Long
      Dim txtARechercher As String
      txtARechercher = txtRechercher.Text
      entryNum = sendMessageByString(List1.hWnd, _
                LB_SELECTSTRING, 0, txtARechercher)
    End Sub
    A chaque caractère saisi dans la zone de texte, cela te trouve le premier enregistrement qui lui correspond. Tu en as l'exemple et l'explication dans mon praticiel "Accès au données ADO", dans frmRechercher.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Merci pour vos réponses!

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

Discussions similaires

  1. Faire une recherche avec/sans accents
    Par Wedge3D dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/02/2007, 10h43
  2. [VB.NET] Faire une recherche dans une treeview
    Par Aspic dans le forum VB.NET
    Réponses: 3
    Dernier message: 15/11/2005, 19h10
  3. Réponses: 9
    Dernier message: 07/11/2005, 19h57
  4. faire une recherche sans tenir compte de la casse
    Par richard038 dans le forum SQL
    Réponses: 5
    Dernier message: 11/10/2005, 09h07
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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