Einzelnen Beitrag anzeigen
Alt 07.02.2003, 22:42   #27
BigNfan
Inventar
 
Registriert seit: 06.01.2000
Alter: 43
Beiträge: 2.232


Standard

Zitat:
Original geschrieben von Seidl
Na da haben aber zwei ganz schön aneinander vorbei geredet

Eine Listbox kann man auf mehrere Arten befüllen. Man kann Werte aus einer Tabelle oder Abfrage nehmen (was BigNfan anscheinend ursprünglich gemacht hat), die Werte durch Semikola getrennt als RowSource angeben (das war Chrisnes Plan) und man kann sie auch über die Methode AddItem mit Werten befüllen.
Ein Requery, also ein erneutes einlesen der Werte ist natürlich nur im ersten Fall sinnvoll da in den beiden anderen Fällen die Werte ja ohnehin direkt in der Listbox abgelegt und damit immer aktuell bekannt sind.

Eine Möglichkeit wäre es das Listenfeld an ein ADO-Recordset zu binden und dem du die Datensätze zuerst hinzufügst um sie dann bei OK nacheinander in deine Tabelle zu schreiben.

Ich würde aber eher vorschlagen beim Starten der Auswahl für eine ADO-Connection auf die betreffende Datenbank eine TRANSAKTION zu starten (=BeginTrans), dann ein Recordset für die betreffende Tabelle zu öffnen, die Werte bei Auswahl in das Recordset zu schreiben (AddNew) und erst bei OK die Änderungen zu übernehmen (=CommitTrans). Wenn der Vorgang nicht mit OK bestätigt wird brichst du die Änderungen einfach ab (=RollbackTrans).

Alle Klarheiten beseitigt?
Na dann is' ja gut

so long
Seidl
leider hab ich es noch immer nicht geschafft
habs jetzt mit deiner methode probiert
weil chrisne hatte leider noch keine zeit meinen code anzuschauen


lst_artikel.RowSourceType = "Value List"
lst_artikel.AddItem source, 0

so, wenn ich nun ins listfeld klicke sehe ich das sich jedes mal eine neue zeile auftut, aber nur leider steht nix drin
hab mir aber angeschaut source isn string und da steht "unsterblich" drin, nur leider zeigt er es nicht an.. sondern nur ein leeres feld
____________________________________
20x Die Ärzte LIVE@2008
Moskau, Prag, Eupen, 6x Berlin etc.
BigNfan ist offline   Mit Zitat antworten