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 :

Saisie semi-automatique a partir d'une BD avec textbox


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Saisie semi-automatique a partir d'une BD avec textbox
    Bonjour,

    Je voudrais savoir comment faire (avec vb.net 2010) pour effectuer une saisie semi-automatique à partir d'un TextBox. Lorsque l'utilisateur commence a taper dans le textbox l'application affiche dans une listbox en-dessous, l'ensemble des choix possibles correpondant à la sélection de l'utilisateur a partir d'une base "BD1" table "CLIENT" et colonne "NOM" réaliser avec SQL server. Au fur et a mesure que l'utilisateur tape des caracteres dans le textbox, les choix dans la listbox se restreindrent.

    Merci de m'aider

  2. #2
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Salut!!
    Alors..voila la demarche:

    -Tu dois positionner un listbox en dessous de ta textbox
    -Donner visible=false au listbox
    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
     
      Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     
      If Me.TextBox1.Text <> "" Then
                    conn()
                    Dim sql = "select * from tatable where nom like '" &  TextBox1.Text & "%'"
                    Dim dta As New SqlDataAdapter(sql, con)
                    Dim dtt As New DataTable
                    dta.Fill(dtt)
                    dta.Dispose()
                    If dtt.Rows.Count <> 0 Then
                        Dim sqlcommande As New SqlCommand
                        Dim rd As SqlDataReader
                        sqlcommande.CommandText = "select * from tatable where nom like '" & TextBox1.Text & "%'"
                        sqlcommande.Connection = con
                        rd = sqlcommande.ExecuteReader
                        ListBox1.Items.Clear()
                        While rd.Read
                            ListBox1.Items.Add(rd(1))
                        End While
                        rd.Close()
                        disconn()
                        ListBox1.Visible = True
                    Else
                        ListBox1.Visible = False
                    End If
                End If
    End Sub
    et dans l'evenement selectedIndexChanged de listbox:
    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
     
      Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
     
        TextBox1.Text = ListBox1.SelectedItem
                ListBox1.Visible = False
                conn()
                Dim cd As New SqlCommand("select * from tatable where nom=@Nom", con)
                Dim rd As SqlDataReader
                cd.Parameters.Add(New SqlParameter("@Nom", SqlDbType.VarChar, 50))
                cd.Parameters("@Nom").Value = (TextBox1.Text)
                rd = cd.ExecuteReader
                While rd.Read
                    TextBox1.Text = rd(1)
                End While
                rd.Close()
                disconn()
    end sub

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonsoir:

    Vous devez modifier la propriété "AutoCompleteMode" de ton TextBox et la mettre: "Suggest", et la propriété AutoCompleteSource: "CustomSource"

    Et dans l'événement Textchanged du TextBox vous devez taper le code suivant:

    'Après Avoir déclarer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Cn As New OleDbConnection("LA chaine de connexion")
        Dim Cmd As OleDbCommand
        Dim Dr As OleDbDataReader
    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
     
    Private Sub TxtNom_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNom.TextChanged
     
            Cmd = New OleDbCommand("Select Champs from TaTable", Cn)
     
            Cn.Open()
            Dr = Cmd.ExecuteReader
     
            While Dr.Read
                TxtNom.AutoCompleteCustomSource.Add(Dr(0))
            End While
     
            Dr.Close()
            Cn.Close()
        End Sub
    Je vous ai ataché un exemple.
    Bonne chance
    Fichiers attachés Fichiers attachés

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    désolé l'exemple avec une BD access, mais c'est la même methode pour SQL

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Comment faire si nous avons 2 champs dans la base de donnée

    Ex : Nom Prenom


    Et que nous voulons qu'il fasse sa saisie semi-automatique dans les deux champs, que l'on commence par entrer le nom ou le prenom qu'il nous le suggère au complet ?


    Cordialement

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2012, 16h59
  2. [AC-2007] Comment faire une saisie semi-automatique sous access 2007
    Par spawny161184 dans le forum VBA Access
    Réponses: 10
    Dernier message: 02/11/2011, 15h09
  3. Procédures pour une saisie semi automatique
    Par michel71 dans le forum Contribuez
    Réponses: 3
    Dernier message: 15/02/2010, 15h14
  4. Réponses: 17
    Dernier message: 23/12/2009, 17h12
  5. Inserer saisie semi-automatique dans une macro
    Par Bib0ucH dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/08/2008, 14h45

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