WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VBA/Access: mehrere Abfragen in ein Listfeld (http://www.wcm.at/forum/showthread.php?t=86947)

BigNfan 05.02.2003 21:35

Zitat:

Original geschrieben von chrisne



so wie es ausschaut hat bignfan nur "wenig" kenntnisse in access. darum sollte die lösung einfacher sein.


chris

so ist es ;)

Seidl 05.02.2003 21:37

Naja, für so kleine Datenmengen ist die Performance wohl auch nicht wirklich ausschlaggebend. Die Frage ist nur wie die Note bei einer getricksten Lösung ausfällt wenn der Lehrer schon eine zusätzliche Tabelle nicht wollte. Die wollte er ja wahrscheinlich nicht um seine Leute zur Verwendung von ADO zu treiben. Bei so kleinen Datenmengen wäre ja auch der Grössenzuwachs durch das Hinzufügen und Löschen aus einer Tabelle kein Thema und sogar das ließe sich bei einer Single-User-Anwendung die es ja sicher ist durch komprimieren beim Schliessen verhindern.

Jetzt liegt's an BigNfan: praktischer Minimalist oder performancegeiler Streber :lol: :lol: :lol:

BigNfan 06.02.2003 17:57

hast du dir den code schon angeschaut ?

Seidl 07.02.2003 10:15

Wie? Was? Wer?!?! :confused:

chrisne 07.02.2003 10:21

ich war damit gemeint.

ja kurz. bin/war gerade ur im stress. schaue das ich am wochenende dazu komme.

zur info:
die ansicht der liste kannst du mit:
Me![list].Requery
aktualisiere

gruss
chris

BigNfan 07.02.2003 10:37

leider steht nach requery immer no nix im listfeld

If (i = 0) Then 'Wenn noch nix im Listfeld steht
Me!lst_artikel.RowSource = rst1!CDName
MsgBox (rst1!CDName)
Else 'Wenn schon etwas im listfeld steht
source = lst_artikel.RowSource 'Alter Wert im Listfeld
source = lst_artikel.RowSource & ";" & rst1!CDName
Me!lst_artikel.RowSource = source 'Neuer Wert im Lisfeld
End If
Me!lst_artikel.Requery 'Listfeldaktualisierung



aber msgbox(rst1!Cdname) gibt den richtigen wert aus.. *hm*

BigNfan 07.02.2003 22:42

Zitat:

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

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 :rolleyes:
hab mir aber angeschaut source isn string und da steht "unsterblich" drin, nur leider zeigt er es nicht an.. sondern nur ein leeres feld

BigNfan 08.02.2003 18:20

Zitat:

Original geschrieben von chrisne
ich war damit gemeint.

ja kurz. bin/war gerade ur im stress. schaue das ich am wochenende dazu komme.

zur info:
die ansicht der liste kannst du mit:
Me![list].Requery
aktualisiere

gruss
chris

hi, wollte nur fragen, ob du jetzt am WE dazu kommst, weil Mo is wieder schule ;-)

Seidl 10.02.2003 10:48

Kleines Beispiel. Ich hoffe nicht zu spät.

BigNfan 10.02.2003 11:03

sehr gut danke!

werd i heut abend glei ausprobieren


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag