Hallo alle miteinandern,
zurzeit porgrammiere ich ein Programm, dass es mir erlaubt Kochrezepte zu erstellen, bearbeiten, löschen, filtern, verwalten, erstellen von zufalls Wochenplänen und zu guter letzt zum erstellen von dementsprechenden Einkaufslisten.
Das Programm verfügt über eine Art (Vorspeise/Hauptgericht/Vorspeise etc.) über eine Kategorie(Suppe - kalt/Suppe - warm/Fleischgericht/Fischgericht etc.) und über Zutaten (Mehl/Zucker/Wasser/Salz etc.). All diese Informationen werden über MySQL in einer Datenbank gespeichert.
Wenn ich eine UserForm öffne, Kategorien oder Zutaten hinzufüge oder lösche, dann wird jedesmal die dementsprechenden ComboBoxen, die benötigten werden mit den neuen Werten aus der Datenbank gefüttert. Da der Quellcode immer identisch ist, sich jediglich aber nur die Steuerelemente ändern, bin ich auf die Idee gekommen ein Modul zu erstellen, das dynamisch auf die Übergabeparameter die jeweiligen Comboboxen füttert.
Hier einmal ein Codebeispiel der alten Methode:
dim i as byte = 0
dim sqlCommand as string = "SELECT name FROM typ"
dim read as string = "name"
loadData(sqlCommand, read)
frm_main_menu.cbType.Items.Clear()
Do While resultOne(i) <> ""
frm_main_menu.cbType.Items.Add(resultOne(i))
resultOne(i) = ""
i = i + 1
Loop
Hier der Code meines Versuches ein Modul zu erstellen:
'Form load
call refreshCategory(me, cbType)
'ende Prozedur
Sub refreshCategory(frm As Form, box As ComboBox)
dim i as byte = 0
dim sqlCommand as string = "SELECT name FROM typ"
dim read as string = "name"
loadData(sqlCommand, read)
frm.box.Items.Clear()
Do While resultOne(i) <> ""
frm.box.Items.Add(resultOne(i))
resultOne(i) = ""
i = i + 1
Loop
End Sub
Das Problem das dabei aber erscheint, ist das "box" kein Member von System.windows.forms.form ist. Testweise habe ich es mit nur einer Übergabe versucht, da hat es dann wunderbar funktioniert. Ich benötige aber für diese Prozedur die Form und die Combobox.
Ich habe bereits im Internet nach der Übergabe von mehreren Steuerelementen rechachiert, bin aber erfolglos gewesen. Ich gehe schwer davon aus, dass das Problem eigentlich recht simpel ist, aber ich komm einfach nicht auf die Lösung.
Ich hoffe einer von euch kann mir da einen Tipp/Rat geben.
Liebe Grüße
Sascha
zurzeit porgrammiere ich ein Programm, dass es mir erlaubt Kochrezepte zu erstellen, bearbeiten, löschen, filtern, verwalten, erstellen von zufalls Wochenplänen und zu guter letzt zum erstellen von dementsprechenden Einkaufslisten.
Das Programm verfügt über eine Art (Vorspeise/Hauptgericht/Vorspeise etc.) über eine Kategorie(Suppe - kalt/Suppe - warm/Fleischgericht/Fischgericht etc.) und über Zutaten (Mehl/Zucker/Wasser/Salz etc.). All diese Informationen werden über MySQL in einer Datenbank gespeichert.
Wenn ich eine UserForm öffne, Kategorien oder Zutaten hinzufüge oder lösche, dann wird jedesmal die dementsprechenden ComboBoxen, die benötigten werden mit den neuen Werten aus der Datenbank gefüttert. Da der Quellcode immer identisch ist, sich jediglich aber nur die Steuerelemente ändern, bin ich auf die Idee gekommen ein Modul zu erstellen, das dynamisch auf die Übergabeparameter die jeweiligen Comboboxen füttert.
Hier einmal ein Codebeispiel der alten Methode:
dim i as byte = 0
dim sqlCommand as string = "SELECT name FROM typ"
dim read as string = "name"
loadData(sqlCommand, read)
frm_main_menu.cbType.Items.Clear()
Do While resultOne(i) <> ""
frm_main_menu.cbType.Items.Add(resultOne(i))
resultOne(i) = ""
i = i + 1
Loop
Hier der Code meines Versuches ein Modul zu erstellen:
'Form load
call refreshCategory(me, cbType)
'ende Prozedur
Sub refreshCategory(frm As Form, box As ComboBox)
dim i as byte = 0
dim sqlCommand as string = "SELECT name FROM typ"
dim read as string = "name"
loadData(sqlCommand, read)
frm.box.Items.Clear()
Do While resultOne(i) <> ""
frm.box.Items.Add(resultOne(i))
resultOne(i) = ""
i = i + 1
Loop
End Sub
Das Problem das dabei aber erscheint, ist das "box" kein Member von System.windows.forms.form ist. Testweise habe ich es mit nur einer Übergabe versucht, da hat es dann wunderbar funktioniert. Ich benötige aber für diese Prozedur die Form und die Combobox.
Ich habe bereits im Internet nach der Übergabe von mehreren Steuerelementen rechachiert, bin aber erfolglos gewesen. Ich gehe schwer davon aus, dass das Problem eigentlich recht simpel ist, aber ich komm einfach nicht auf die Lösung.
Ich hoffe einer von euch kann mir da einen Tipp/Rat geben.
Liebe Grüße
Sascha