Ich versuche, einen Prozess-Scheduler als ein Projekt in der Schule in diesem Sommer zu erstellen und bin ziemlich neu in der Verwendung von VB. Derzeit habe ich eine Combobox an die "EmployeeBindingSource" gebunden, die Informationen für jeden einzelnen Mitarbeiter in einem Unternehmen enthält. Jedem Mitarbeiter wird für jeden Arbeitsplatz im Gebäude ein Fähigkeitslevel zugewiesen. Was ich tun möchte, ist, wenn ein Mitarbeiter mit der Fähigkeit "0" in der Montagestation aufgeführt ist, wenn ein Mitarbeiter ausgewählt wird, der der Montagestation zugewiesen wird, dieser bestimmte Mitarbeiter nicht in der Combobox erscheint.Filter-Datenfeld-Combobox basierend auf Wert in einer anderen Spalte aus dem gleichen Datensatz
Von einigen Recherchen glaube ich, dass, anstatt die Combobox an die Datenquelle im Designer zu binden, muss ich die einzelnen Kombinationsfelder im Code auf einem Formular laden zuweisen.
This is the access table that holds all the employee information
In der Tabelle können wir sehen, dass Steve ein Skill-Level von "0" in der Kategorie AS_Level (Montag) hat.
Zeit all Daten geschieht im Designer für jedes Kombinationsfeld verbindlich und daher kein Code für die Daten ist verbindlich geschrieben. Momentan ist jedes Kombinationsfeld an die Spalte "Full_Name" in der Zugriffstabelle gebunden.
Wieder bin ich ziemlich neu in VB, also entschuldige ich mich, wenn das zu vage ist. Lassen Sie mich wissen, wenn ich weitere hilfreiche Informationen geben kann. Vielen Dank im Voraus.
Nachdem Sie den Code hier vorgeschlagen ist, was ich habe
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
datafile = "C:\Users\Jacob\Desktop\Halton\HaltonProject.accdb"
connString = provider & datafile
myConnection.ConnectionString = connString
myConnection.Open()
Dim str As String
str = "SELECT * FROM [Employee] WHERE (SP_Level <> '" & 0 & "')"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
Dim dr As OleDbDataReader = cmd.ExecuteReader
Dim userfound As Boolean = False
Dim Full_Name As String
While dr.Read
userfound = True
Full_Name = dr("Full_Name").ToString
SP_Emp1.Items.Add(Full_Name)
SP_Emp2.Items.Add(Full_Name)
SP_Emp3.Items.Add(Full_Name)
SP_Emp4.Items.Add(Full_Name)
End While
myConnection.Close()
Works jetzt komplett!
könnten Sie Ihren verbindlichen Code veröffentlichen, wird es hilfreich sein. Wenn Sie jedes Kombinationsfeld einzeln binden, können Sie eine where-Klausel hinzufügen, um die Informationen aus der Tabelle zu erhalten, in der der "x" -Parameter nicht 0 – abichango
Derzeit bin ich für das Zuweisen der Bindung für jede Combobox im Designer selbst Klicken Sie auf die kleine Karotte in der oberen rechten Ecke und wählen Sie die Datenquelle, das Anzeigeelement und das Wertelement aus. Für Datenquelle verwende ich die "EmployeeBindingSource", die die Access-Tabelle angezeigt wird, und für beide Anzeigeelement und Wertelement verwende ich "Full_Name". Wäre so etwas der richtige Weg? 'Dim cmd As OleDbCommand = Neuer OleDbCommand (" SELECT * FROM [Mitarbeiter] WHERE ** Code hier **, myConnection) Dim dr Als OleDbDataReader = cmd.ExecuteReader' –