Datagridview recherche update

agent933 Messages postés 5 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 9 février 2010 - 30 oct. 2008 à 18:12
cs_Tartuffe245 Messages postés 13 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 7 septembre 2010 - 19 févr. 2009 à 23:38
salut,
je fais en ce moment un projet en visual basic 2008 express utilisant les bases de donnees.
J'ai cree ma base de donnees avec Access.
Mon probleme est le suivant :
Sur une fiche j'ai un datagridview qui est connecte a une table produits qui affiche toutes les caracteristiques de tous les produits.
Sur la meme fiche j'ai un textbox.
Ce que je veux faire c'est qu'au fur et a mesure que l'utilisateur tape le nom d'un produit dans le textbox les lignes du datagridview qui ne correspondent au textbox.text disparaissent.
Par exemple soit le produit sucre, si l'utilisateur tape s automatiquement toutes les lignes (les produits) qui ne commencent pas par s disparaissent, et s'il ajoute u ce qui ne commencent pas en su disparaissent et ainsi de suite jusqu'a ce qu'a la fin il ne reste que la ligne sucre quand l'utilisateur a entre tout le mot sucre.
J'ai essaye

   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


        Dim I As Integer = 0 '' variable de boucle


        For I = 0 To DataGridView1.Rows.Count - 2
            If TextBox1.Text = Me.DataGridView1.Rows(I).Cells("name").Value.ToString.Trim.Remove(TextBox1.Text.Length) Then
                Me.DataGridView1.Rows(I).Cells(1).Selected() = True
                Exit For
            End If
        Next




    End Sub

Mais ya une erreur disant que la colonne name na pas ete trouvee alors qu'elle existe.J'y comprends rien.
J'ai fait des recherches en utilisant comme mot-cles autocomplete mais ca na rien a voir apparemment.
Merci d'avance.

4 réponses

cs_Tartuffe245 Messages postés 13 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 7 septembre 2010
12 févr. 2009 à 19:43
                      Bonjour,
c'est un sujet qui m'intéresse beaucoup, moi aussi j'ai un textbox, un combobox :
Le combo me permet de d'identifier la colonne dans laquelle je recherche une valeur saisie dans le textbox, , qui se situe dans mon DatagridView qui est remplit via une base de données Access.
Par exemple, je recherche une Immatriculation, je sélectionne
dans mon combo : immatriculation
je saisie dans le textbox : 1111AA11
Et toutes les lignes n'ayant aucune correspondance avec la valeur saisie dans mon textbox disparaissent, il doit me rester que la ligne ayant pour immatriculation 1111AA11!
Merci d'avance, de me prévenir si vous avez trouvé une solution !
Cordialement ;)!
0
agent933 Messages postés 5 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 9 février 2010
13 févr. 2009 à 09:03
Salut,
voici ma solution.Hope it will help.

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


        Dim I As Integer = 0




        'If TextBox1.Text = Me.DataGridView1.Rows(I).Cells("name").Value.ToString.Trim.Remove(TextBox1.Text.Length) Then
        'Me.DataGridView1.Rows(I).Cells(1).Selected() = True
        Me.ProductsBindingSource.Filter = String.Format("name LIKE '{0}%'", Me.TextBox1.Text)


        'End If


 


    End Sub
0
agent933 Messages postés 5 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 9 février 2010
13 févr. 2009 à 09:04
sorry voici la solution sans les commentaires

 Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


        Dim I As Integer = 0
        Me.ProductsBindingSource.Filter = String.Format("name LIKE '{0}%'", Me.TextBox1.Text)




    End Sub
0
cs_Tartuffe245 Messages postés 13 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 7 septembre 2010
19 févr. 2009 à 23:38
Bonjour,
Votre code ne fonctionne pas du tout pour moi ! :(
J'ai pourtant tout essayé, mais cela vient peut être du fait que le datagridview est remplit différemment du votre, ce que je veux dire c'est que je ne l'ai pas relié directement via l'assistant de VS2008 à la base, je passe par le code que voici :


        VariablesGlobales.maConnexion.ConnexionBdd()



        Dim maRequeteSQL As String



        maRequeteSQL = "SELECT client_num as Numero, client_nom as Nom, client_prenom as Prenom, client_adresse1 as Rue, client_cp as CP, client_ville as Ville, client_tel as Tel, client_fax as Fax, client_mail as Email " & _



                       "FROM client "





        monDataAdapter = VariablesGlobales.maConnexion.ExecutionRequeteDataAdapter(maRequeteSQL)



        maCommandBuilder = New OleDbCommandBuilder(monDataAdapter)



        monDataAdapter.Fill(monDataSet, "client")










        monDataTable = monDataSet.Tables("client")





        dgvClient.DataSource = monDataTable



        maCommandBuilder = New OleDbCommandBuilder(monDataAdapter)



        monDataAdapter.Update(monDataSet, "client")





        dgvClient.Update()




 
0
Rejoignez-nous