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]Comment ajouter une fonctionnalité de correspondance à une dataCombo


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut [VB6]Comment ajouter une fonctionnalité de correspondance à une dataCombo
    bonjour,

    voilà je voulais adapter cette fonctionnalité à une dataCombo, le code ci-dessous est pour une combobox :
    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
    26
    27
    28
    29
    30
    31
    32
    33
     
    Private Sub Combo1_KeyPress(KeyAscii As Integer)
        Dim Trouve As Long, Position As Integer, Taille As Integer
        Dim strTemp As String
        With Me.Combo1
            If KeyAscii = 8 Then
                If .SelStart = 0 Then Exit Sub
                .SelStart = .SelStart - 1
                .SelText = ""
            Else
                Position = .SelStart
                strTemp = .Text
            End If
            .SelText = Chr(KeyAscii)
            Trouve = SendMessage(.hwnd, CB_FINDSTRING, 0, ByVal .Text)
            If Trouve = -1 Then
                ' les trois lignes suivantes doivent être enlevées
                ' en cas de non correspondance possible
                .Text = strTemp
                .SelStart = Position
                .SelLength = (Len(.Text) - Position)
                KeyAscii = 0
                Exit Sub
            Else
                Position = .SelStart
                Taille = Len(.List(Trouve)) - Len(.Text)
                .SelText = .SelText & Right(.List(Trouve), Taille)
                .SelStart = Position
                .SelLength = Taille
                KeyAscii = 0
            End If
        End With
    End Sub

    et bien sur la propriété ".List", n'existe pas pour une datacombo, donc j'ai essayé avec la listField, mais ça pose un pb aussi, vu que ça ne renvoie pas le même type de valeur.

    Si quelqu'un peut m'aider s'il vous plait, merci

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour

    Peux tu poser ta question en texte et non en code, afin que l'on ne soit pas obligés de plonger dans ce code pour savoir ce que tu veux. Merci.

    Ceci étant, tu trouveras un exemple de ce que tu veux obtenir dans "Accès aux données ADO" (accessible par la signature), et plus précisément dans frmRecherceher. Il y est utillisé une ListBox et l'API SendMessage.

    Pour utiliser une DataList (ou DataComblo), il suffit d'en préciser la source. Mais là aussi, tu as a ta disposition des cours, par exemple "Initiation à l'accès aux données" pour l'utilisation d'une DataList.

    Alors, bon courage .

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    en fait, justement je me suis servi de ce cours pour remplir ma dataCombo. Et ma question est, quand je tape une lettre sur ma dataCombo, ben qu'il me positionne sur les mots ou noms qui commencent par cette lettre et ainsi de suite si je tape sur une 2ème et 3ème lettre.

    Je ne sais pas si je me suis bien exprimé.

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par mcay
    Je ne sais pas si je me suis bien exprimé.
    Heu... pas vraiment

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    alors je vais essayer de mieux m expliquer, j ai une dataCombo qui contient des données. Pour sélectionner dans ma dataCombo, je peux chercher dans ma liste déroulante et sélectionner celui que je cherche. Ce que je veux faire là, c est que au lieu de chercher dans ma liste déroulante, je saisi dans ma liste déroulante.

    Par exemple je saisi dans une premier temps C, ben que dans ma liste déroulante je sois positionner à partir de tous le noms qui commencent par C, si je saisi un A après, donc que je sois positionné sur les noms qui commencent par CA et anisi de suite dans ma liste déroulante.

    Est ce que mon explication est mieux ??

    en fait, le code que j ai mis au début, je l ai vu dans la faq VB, et apparemment ça le fait pour comboBox, je voudrais faire la même chose pour une dataCombo, mais il y a des propriétés qui ne sont pas similaires pour les 2.

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Il me semble avoir été confronté au problème pour le praticiel indiqué, et c'était pour celà que j'avais mis une zone de texte dans laquelle on saisis la recherche, et la liste qui affiche le premier nom correspondant à la séquence saise.

    Là, je n'ai pas le temps. Je regarderai de plus près ce soir ou demain.

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour

    Je me suis replongé un peu dans mon praticiel, j'ai mis une ComboBox, sans plus, et cela fait exactement ce que tu veux. Donc pour moi, pas de problème.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    ok, je regarderais, en attendant, j'ai refait l'appli d'une autre façon, je te remercie, je te tiendrais au courant après avoir testé si ça me fait pareil ou pas.

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

Discussions similaires

  1. Comment ajouter un 2eme MenuBar dans une frame ?
    Par melanoche dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/05/2007, 16h33
  2. PB comment ajouter la clé etrangere dans une table
    Par kundun dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/11/2006, 15h48
  3. Réponses: 3
    Dernier message: 05/11/2006, 11h42
  4. Réponses: 2
    Dernier message: 03/01/2006, 14h58
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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