WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Bericht: Listfeld zuweisen (http://www.wcm.at/forum/showthread.php?t=90175)

BigNfan 05.03.2003 10:07

Bericht: Listfeld zuweisen
 
hi, ich möchte das listfeld definieren, leider meint er immer, dass ich das nicht setzen kann

weiss wer wie ich das machen kann ?

Private Sub Report_Activate()

Set con = CurrentProject.Connection
Set rstds = New ADODB.Recordset
Set rstVerleih = New ADODB.Recordset
Set rstAdresse = New ADODB.Recordset
Set rstTableOpen = New ADODB.Recordset
Dim str_suchkriterium As String

int_g_mitarbeiterid = 1

ds = "select Filiale_ID from tbl_mitarbeiter where ID = " & int_g_mitarbeiterid & ";"
'Listet FilialID des Mitarbeiters auf
rstds.Open ds, con, adOpenDynamic, adLockOptimistic
rstAdresse.Open "tbl_filiale", con, adOpenDynamic, adLockOptimistic
If (rstAdresse!ID <> rstds!filiale_id) Then
str_suchkriterium = "[ID] = " + "'" + rstds!filiale_id + "'"
rstAdresse.Find str_suchkriterium, adSearchForward
End If
rstds.Close
txt_filiale = rstAdresse!Adresse
rstAdresse.Close
txt_datum = Date
rstVerleih.Open "tbl_verleih", con, adOpenDynamic, adLockOptimistic
rstVerleih.MoveLast
txt_rnummer = rstVerleih!ID
txt_betrag = rstVerleih!Gesamtbetrag
'ds = "SELECT tbl_cdarchiv.ID, tbl_cdarchiv.CDName FROM tbl_verleihzeile, tbl_cdarchiv WHERE " _
& " (((tbl_verleihzeile.Lagerbestandcd_ID)=[tbl_cdarchiv].[id]) AND ((tbl_verleihzeile.Verleih_ID)=rstVerleih!id));"
lst_artikel.RowSource = "SELECT tbl_cdarchiv.ID, tbl_cdarchiv.CDName FROM tbl_verleihzeile, tbl_cdarchiv WHERE " _
& " (((tbl_verleihzeile.Lagerbestandcd_ID)=[tbl_cdarchiv].[id]) AND ((tbl_verleihzeile.Verleih_ID)=rstVerleih!id));"
End Sub

wbendl 07.03.2003 10:24

dein posting ist für mich nicht sehr aufschlussreich

wenn ich's richtig kapiere willst du zur laufzeit ein DBList füllen.
die rowsource-eigenschaft kann aber zur laufzeit nicht geändert werden. ist bei diesem steuerelement nicht vorgesehen.

du kannst aber ein recordset erstellen, und dann ein listenfeld mit den daten füllen. wenn es viele zeilen sind, kann das aber dauern. dann würde ich ein grid verwenden.

falls ich es falsch verstanden habe, bitte eine möglichst genaue beschreibung vom gewünschten effekt. bitte mit folgenden angaben:

welche VB-Version
welche controls stehen dir zur verfügung
in welchem container soll das control sein
was soll mit den angezeigten daten weiter geschehen

WB

BigNfan 07.03.2003 12:10

hi
access xp

ich hab ne abfrage gemacht "ds"

die soll nun im listfeld des berichtes stehen

i weiss ned was controls, container etc sind

nur dass ich die abfrage ds hab, dass im listfeld des berichtes angezeigt werden soll und das ich ADO verwende

wbendl 07.03.2003 16:35

hi!

sorry, auf access war ich nicht vorbereitet
mit access habe ich bei office 97 aufgehört, weil alle 2 jahre eine neue version kommt, die mit der vorigen nicht kompatibel ist.

vergiss was ich geschrieben habe

in dunkler erinnerung habe ich aber noch, daß man bei access die rowsource-eigenschaft mit vb einstellen kann. auch eine sql-anweisung ist zulässig. soweit sollte alles in ordnung sein.

vorher muß die rowsourcetype-eigenschaft eingestellt sein. in deinem fall ist wahrscheinlich "table/query" die richtige einstellung.

vielleicht funktioniert es auch bei xp noch so. ein versuch kann nicht schaden.

WB

BigNfan 07.03.2003 16:45

ja bei formularen funkts ja auch

nur bei berichten ned.. aba irgendwie muss ja gehen sonst wärs ja unsinnig listfelder in berichte einfügen zu können

wbendl 08.03.2003 13:17

eingeschränkte funktionen der steuerelemente sind mir nicht neu.
in vb6 gibt's das auch in ähnlicher weise.

aber warum brauchst du in einem bericht ein listenfeld?

wenn der bericht gedruckt wird, was eigentlich der sinn ist, kann man ja nichts mehr auswählen oder beeinflussen.

wenn du nur eine ausgabe am bildschirm willst, muss es kein bericht sein.

in deiner sql-anweisung sehe ich nur eine variable. wenn du die datensätze für den bericht filtern willst, sollte das schon früher geschehen.

also wenn es kein geheimnis ist, dann sag mir, was du wirklich erreichen willst. ich bin ziemlich sicher, daß man das gewünschte ergebnis erreichen kann. mit access ist ja fast alles machbar. aber um den weg zu finden, sollte man das ziel kennen.

WB

BigNfan 08.03.2003 13:25

also .. es isn schulprojekt

der kunde wählt aus welche filme oder musikcds er ausborgen will und bekommt ne rechnung (bericht)

hier soll dann eben filiale etc drinstehen und dann alle ausgeliehenen artikel
und in das listfeld wollte ich die artikel schreiben

wbendl 08.03.2003 15:11

na prima, dann brauchts kein listenfeld im bericht.

sowas habe ich vor jahren für einen freund gemacht, nur das es keine cd's waren. damals habe ich noch mit access gearbeitet.

ich versuche einmal aus deinem code auf die grundlage zu kommen.

geht ungefähr so:

tbl_filiale
tbl_mitarbeiter
tbl_verleih - enthält den geschäftsfall
tbl_cdarchiv - entält den lagerbestand
tbl_verleihzeile - ein datensatz pro verliehener cd


frm_verleih ein formular mit unterformular
- combo zum auswählen des mitarbeiters
die filiale wird wird festgelegt, und di id in tbl_verleih
gespeichert. anzeige im form nicht notwendig, aber möglich
- felder für datum, kunde, ... was auch immer gespeichert wird
falls zb. eine kundenkartei (tbl_kunden) existiert, combo verwenden.
- verleihid anzeige im form nicht notwendig, aber speichern

frm_verleihunterf

wbendl 08.03.2003 15:33

sorry, ich hab einen absturz gebaut. ich schreib das ganze nochmal

na prima, dann brauchts kein listenfeld im bericht.

sowas habe ich vor jahren für einen freund gemacht, nur das es keine cd's waren. damals habe ich noch mit access gearbeitet.

ich versuche einmal aus deinem code auf die grundlage zu kommen.

geht ungefähr so:

tbl_filiale
tbl_mitarbeiter
tbl_verleih - enthält den geschäftsfall
tbl_cdarchiv - entält den lagerbestand
tbl_verleihzeile - ein datensatz pro verliehener cd


frm_verleih ein formular mit unterformular
- combo zum auswählen des mitarbeiters
die filiale wird wird festgelegt, und di id in tbl_verleih
gespeichert. anzeige im form nicht notwendig, aber möglich

- felder für datum, kunde, preis, ... was auch immer gespeichert wird
falls zb. eine kundenkartei (tbl_kunden) existiert, combo verwenden.

- verleihid anzeige im form nicht notwendig, aber speichern

- ok schaltfläche

frm_verleihunterf
- darsrellung tabellenansicht

- mit nachschlageassistent cd auswählen. die ganze zeile wird angezeigt (titel, preis, ..), aber nur die id gespeichert. ich glaube damals habe ich eine hilfstabelle verwenden müssen. vielleicht find ich es noch. die cd wird als verliehen markiert, damit sie nicht ein 2. mal ausgegeben werden kann. auch in der auswahlliste darf sie nicht mehr erscheinen. geamtpreis aktualisieren.

auf ok klicken
- der bericht wird gedruckt. als einziges argument muß die verleihid übergeben werden, alles andere kann er aus den tabellen holen.

ich glaube das ist so ziemlich die minimalversion. praktischer wird's, wenn man im formular nicht nur neue vorgänge anlegen kann, sondern auch die früheren anzeigen kann. eine suchfunktion ist auch noch ein goodie. kommt auf deine lehrer an.

die cd-verwaltung auch nicht vergessen!

ich schau jetzt noch ob ich das alte projekt noch finde. falls ja, melde ich mich nochmal.

WB

wbendl 08.03.2003 16:10

ich hab die beschreibung von dem damaligen project gefunden

im prinzip habe ich alles so gemacht wie vorher gepostet, nur halt aufwendiger und mit zusätlichen funktionen z.b. für eingehende lieferungen, usw.

tbl_artikel - alle angaben bis hin zu mwst-satz, handelsspanne,....

tbl_bestelldetails - verbindet artikelid und bestellid.
zusätzlich verwende ich noch eine lfd.nr., um die zeilen in der bestellung zu mummerieren, und die anzahl der artikel.
anzahl wirst du aber nicht brauchen.

tbl_bestellungen - angaben über kunden, datum, versandadresse, frachtkosten,....

und wie gesagt, für den Bericht genügt die bestellid als parameter.

viel spaß

WB


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

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