| |

VB.NET - Ein- und UmsteigerFilter nach erstem Buchstaben | |  | Autor: Knabber | Datum: 04.09.22 22:58 |
| Hallo
Weiss jemand ob es folgendes gibt:
Ich möchte in einer Textbox einen Buchstaben eingeben und danach soll aus dem Dataset/Bindingsource alles im
Datagridview angezeigt werden was mit dem Buchstaben anfängt. Gebe Ich den 2. Buchstabe ein soll weitergefiltert werden. Bis zum schluss nur noch ein Datensatz übrig bleibt.(sofern vorhanden)
Kann da jemand helfen ?
Gruß
Sabine |  |
Re: Filter nach erstem Buchstaben | |  | Autor: Manfred X | Datum: 05.09.22 00:43 |
| Hallo!
Die simple Lösung (Textbox-Textchanged-Event und der magische Stern im String-Filter):
Public Class frmFilter
Dim WithEvents tboFilter As New TextBox With
{.Parent = Me, .Location = New Point(10, 10), .Width = 300}
Dim bs As New BindingSource
Dim dt As New DataTable
Dim dgv As New DataGridView With
{.Parent = Me, .Top = 100, .Size = New Size(300, 300), .DataSource = bs}
Private Sub frmFilter_Load(sender As Object, e As EventArgs) Handles _
MyBase.Load
'Testdaten
dt.Columns.Add("irgendwas")
With dt.Rows
.Add("A")
.Add("aa")
.Add("b")
.Add("BB")
.Add("c")
.Add("cC")
.Add("aAauuu")
End With
bs.DataSource = dt
End Sub
Private Sub tboFilter_TextChanged(sender As Object, e As EventArgs) _
Handles tboFilter.TextChanged
bs.Filter = dt.Columns("irgendwas").ColumnName & " like '" & _
tboFilter.Text & "*'"
End Sub
End Class |  |
Re: Filter nach erstem Buchstaben | |  | Autor: Knabber | Datum: 05.09.22 09:14 |
| Hallo
erst einmel vielen Dank für die Hilfe.
Das es nur ein Einzeiler ist wäre mir nicht im Traum eingefallen.
Ich habe versucht den code bei mir anzupassen. leider funktioniert er nicht wie gewünscht.
Private Sub tbx_name_TextChanged(sender As Object, e As EventArgs) Handles _
tbx_name.TextChanged
Dim bs As New BindingSource
Dim dt As New DataTable
bs.DataSource = dt
DatenBindingSource.Filter = dt.Columns("Name").ColumnName & " like '" & _
tbx_name.Text & "*'"
End Sub Ich bekomme eine Fehlermeldung
"NullRefereceException wurde nicht behandelt."
In jeder Celle der Column "Name" steht aber ein Name
Das Dataset heisst "BDSDataset"
Meine Tabelle heisst "Daten"
Die Spalte heisst "Name"
Die Textbox heisst "tbx_name.text"
Ich hoffe das ich deinen Code richtig umgesetzt habe
Die Textbox(Detailview), sowie das Datagridview sind Gebunden
Gruß
Sabine
Beitrag wurde zuletzt am 05.09.22 um 09:15:39 editiert. |  |
Re: Filter nach erstem Buchstaben | |  | Autor: Manfred X | Datum: 05.09.22 12:29 |
| Hallo!
Die Datenklassen dürfen nicht im Eventhandler (Text-Changed) deklariert werden.
Du musst beim Filtern die Bindingsource Deiner Datenbasis (=gefüllte Datatable) benutzen.
Du benötigst also eine Bindingsource, an die BDSDataset.Daten gebunden ist
(Datasource-Eigenschaft).
Diese Bindingsource-Instanz sollte mindestens auf Formularebene (eventuell im Designer)
deklariert sein, wie in meinem Beispiel.
Du erstellst in Deinem Code lokal im Eventhandler eine (leere) Tabelle.
Befasse Dich einmal mit dem Gültigkeitsbereich von Variablen-Deklarationen. |  |
Re: Filter nach erstem Buchstaben | |  | Autor: Knabber | Datum: 08.09.22 08:21 |
| so. habe nun viel zeit damit verbracht
Habe im Designer eine neue Tabelle erstellt "Name"
Dann im Textchanged alles so eingetragen wie es nach meinen Vorstellungen richtig sein müsste.(nach deinem Code)
Es gibt keine Fehlermeldung. aber Filtern tut er auch nicht.
Private Sub tbx_name_TextChanged(sender As Object, e As EventArgs) Handles _
tbx_name.TextChanged
Dim bs As New BindingSource
Dim dt As New NameDataTable
bs.DataSource = dt
bs.Filter = dt.Columns("Name").ColumnName & " like '" & tbx_name.Text & _
"*'"
end sub konntest du noch mal schauen wo mein Fehler dabei ist?
gruß
Sa |  |
Re: Filter nach erstem Buchstaben | |  | Autor: Manfred X | Datum: 08.09.22 08:46 |
| Hallo!
Ich kann nur erneut schreiben, was ich bereits geschrieben habe.
Du mußt Deine (im Designer erstellte) Tabelle an eine auf Formularebene
deklarierte Bindingsource binden, die wiederum an einem Grid hängt.
Diese Bindingsource ist vermutlich vom Designer bereits erstellt worden.
Sie muß im Textchanged-Event zum Filtern verwendet werden.
Befasse Dich unbedingt mit dem Geltungsbereich von Variablen-Deklarationen.
Variablen, die innerhalb einer Routine deklariert sind, existieren nur so lange,
bis die Routine beendet ist. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevGraph (VB/VBA) 
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
Tipp des Monats September 2023 Dieter OtterPopUp-Menü wird nicht angezeigt :-(In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2023 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|