Einzelnen Beitrag anzeigen
Alt 16.11.2017, 13:54   #5
rms1962
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

ich würde das an deiner Stelle direkt oben im OleDbcommand filtern. Wenn in den Textboxen nichts steht, werden dann alle Datensätze angezeigt. Dafür würde ich das Laden der Daten in einer separaten Routine unterbringen:

Code:

Imports System.Data.OleDB
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       DatenLaden()
End Sub
Private Sub Text_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Textbox1.TextChanged, Textbox2.TextChanged
        DatenLaden()
End Sub
Privat Sub DatenLaden
        Dim MyConnection As OleDbConnection
        Dim MyCommand As OleDbDataAdapter

        MyConnection = New SOleDbConnection("provider=Microsoft.ace.OLEDB.12.0;Data Source='d:gfzuzu.xls';Extended Properties=Excel 12.0;")
        MyCommand = New OleDbDataAdapter("select [Konto], [Beschriftung], [Straße], [Vertragsnummer] from [Sheet1$] where Straße Like '" & _
Textbox1.text & "%' Vertragsnummer Like '%" & Textbox2.text & "%'", MyConnection)
        Dim da new OleDbDataAdapter(MyCommand)
        Dim dt as new DataTable
        da.Fill(dt)
        DataGridView1.DataSource = dt
End Sub
End Class
Diese Routine rufst du beim Laden des Formulars und beim Ereignis Textbox TextChanged auf. Die BindingSource brauchst du nicht.

Gruß
Ralf
rms1962 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten