IN VB ein DataGridView Filtern über einen Button

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von basti2010.

    IN VB ein DataGridView Filtern über einen Button

    Hey Ich möchte gerne in VB ein DataGridView Über ein Button Filtern.

    Nur wie füge ich ein SQL Befehl so ein das er Filtert? Dachte mir das inetwa so:

    VB.NET-Quellcode

    1. Dim SQL As String
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles bntTerminHeute.Click
    3. SQL = "SELECT * from Tbl_TerminbuchDataGridView WHERE Datum Like Date() and Uhrzeit > time()"
    4. End Sub


    Dieses scheint allerdings nicht so zu funktionieren, Könnt ihr mir helfen.
    Erstmal vielen Dank für den Tipp.

    Ich möchte das ganze nach Datum Filtern.

    Jetzt würde ich gerne wie das geht, in der Referenz ist dieses leider nicht auffindbar

    Tbl_TerminbuchBindingSource.Filter = "Datum = "AKTUELLES SYSTEMDATUM"

    sowas wie = date() klappte nicht

    Ich würde gerne nach drei Kreterien Filtern

    1. nach heutigen Datum und aktueller Uhrzeit (alle Termine die heute noch folgen)

    2. alles was in der Zukunft liegt (Termine nach heute)

    3. Alle Termine (auch abgelaufende)

    zur Vereinfachung hier die Filterung wie sie aus Access umgesetzt werden soll

    VB.NET-Quellcode

    1. zu 1
    2. Dim EingabeSQL As String
    3. Dim strEingabe As String
    4. EingabeSQL = "SELECT * " & _
    5. "FROM [tbl_Terminbuch] " & _
    6. "WHERE [Datum] Like Date() and [Uhrzeit] > time()"
    7. Me.RecordSource = EingabeSQL
    8. zu 2
    9. Dim EingabeSQL As String
    10. Dim strEingabe As String
    11. EingabeSQL = "SELECT * " & _
    12. "FROM [tbl_Terminbuch] " & _
    13. "WHERE [Datum] > date()"
    14. Me.RecordSource = EingabeSQL
    15. zu 3
    16. Dim EingabeSQL As String
    17. Dim strEingabe As String
    18. EingabeSQL = "SELECT * " & _
    19. "FROM [tbl_Terminbuch] " & _
    20. "WHERE [Datum] Like '*' "
    21. Me.RecordSource = EingabeSQL
    Ersteinmal vielen Dank

    Aber ich glaube da ist was falsch rübergekommen.


    Es soll immer das Aktuelle Systemdatum genommen werden bzw. auch in bestimmten fällen die aktuelle Uhrzeit.

    EDIT

    Lösung gefunden :

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles bntTerminHeute.Click
    2. '######## Hier die Filterung nach Terminen des aktuellen Tages ########
    3. Tbl_TerminbuchBindingSource.Filter = "Datum = '" + System.DateTime.Today + "'"
    4. End Sub
    5. Private Sub bntTerminAlle_Click(sender As Object, e As EventArgs) Handles bntTerminAlle.Click
    6. '######## Alle Termine ########
    7. Tbl_TerminbuchBindingSource.Filter = ""
    8. End Sub
    9. Private Sub bntTerminZukünftige_Click(sender As Object, e As EventArgs) Handles bntTerminZukünftige.Click
    10. '######## Hier die Filterung nach Terminen in der Zukunft ########
    11. Tbl_TerminbuchBindingSource.Filter = "Datum > '" + System.DateTime.Today + "'"
    12. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „basti2010“ ()

    Nochmal zum Filtern wenn ich in einem DataGripView einen Filter setzten möchte der sich immer nach einem Textbox orientiert und danach filtert.

    Wie löse ich das, mein ansatz wäre das hier:

    VB.NET-Quellcode

    1. Tbl_TerminbuchBindingSource.Filter = "Kunden_ID" = Kunden_ID_fTextBox.Text
    Versuche es so:

    VB.NET-Quellcode

    1. Dim tmp as Integer
    2. if Int32.TryParse(Kunden_ID_fTextBox.Text, tmp) then
    3. Tbl_TerminbuchBindingSource.Filter = string.Concat("Kunden_ID = ", tmp)
    4. else
    5. 'keine Zahl in der TextBox
    6. end if

    schaue auch hier einmal hinein...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VB1963“ ()

    VB1963 schrieb:

    Versuche es so:

    VB.NET-Quellcode

    1. Dim tmp as Integer
    2. if Integer.TryParse(Kunden_ID_fTextBox.Text, tmp) then
    3. Tbl_TerminbuchBindingSource.Filter = string.Concat("Kunden_ID = ", tmp)
    4. else
    5. 'keine Zahl
    6. end if

    schaue auch hier einmal hinein...



    Glaube das ist für Leute die ohne Access Datenbank Anbindung im Hintergrund arbeiten.
    Bei mir lauft eine Access Datenbank im Hintergrund.

    VB1963 schrieb:

    Versuche es so:

    VB.NET-Quellcode

    1. Dim tmp as Integer
    2. if Int32.TryParse(Kunden_ID_fTextBox.Text, tmp) then
    3. Tbl_TerminbuchBindingSource.Filter = string.Concat("Kunden_ID = ", tmp)
    4. else
    5. 'keine Zahl in der TextBox
    6. end if

    schaue auch hier einmal hinein...



    Scheint nicht zu funktionieren
    Hatte auch Quelltext einen fehler drin - hier die Korrektur

    VB.NET-Quellcode

    1. Dim tmp as Integer
    2. if Int32.TryParse(Kunden_IDTextBox.Text, tmp) then
    3. Tbl_TerminbuchBindingSource.Filter = string.Concat("Kunden_ID_f = ", tmp)
    4. else
    5. 'keine Zahl in der TextBox
    6. end if


    Hatte da was vertauscht.