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 08.03.2003 20:22

ich kann nicht mehr neue tabellen etc machen, das steht schon alles .. -> ERD

ich muss es mit denen machen die da sind, einige formulare sind ja schon fertig

wbendl 09.03.2003 10:21

ist die verwendung der tabellen eine vorgabe?

in deinem code kommen 5 tabellen vor:

tbl_filiale
tbl_mitarbeiter
tbl_verleih
tbl_cdarchiv
tbl_verleihzeile

das genügt.

entscheidend ist nur, den verleih-vorgang (das eintragen der cd's, die bei einem vorgang verliehen werden) in einem formular durchzuführen, und die notwendigen daten in die tabellen zu schreiben.

combos zur auswahl sind zwar komfortabel und stellen sicher, daß nur vorhandene einträge augewählt werden können, aber nicht unbedingt notwendig.
wenn du die zu verleihende cd händisch einträgst, mußt du darauf achten, daß sie sie auch wirklich existiert. oder zumindest ein datensatz mit dieser id in tbl_cdarchiv existiert.

in tbl_verleihzeile muß für jede verliehene cd ein datensatz entstehen, der die id aus tbl_verleih und die id aus tbl_cd archiv enthält.

in tbl_verleih muß die id des mitarbeiters gespeichert werden.

ich gehe der einfachheit halber davon aus, daß der bericht nur aus 1 seite bestehen wird.
andernfalls wird es kompliziert. notfalls kann ich dir aber auch diese möglichkeit beschreiben.

der bericht muß aus 3 bereichen bestehen. eventuell sind die von mir verwendeten bezeichnungen nicht ganz korrekt, aber sie sollten erkennbar sein.

- berichtskopf oder seitenkopf (bei dieser lösung wahrscheinlich gleichwertig)
enthält bei bedarf den briefkopf und das firmenlogo
textfelder für die daten aus tbl_verleih, tbl_mitarbeiter, tbl_verleih. (z. b. datum, filiale, mitarbeiter, ...)

- detailbereich
textfelder für die daten aus tbl_cdarchiv

- berichtsfuß oder seitenfuß
textfeld für die rechnungssumme
berichtsfuß ist besser. dann kommt die summe nach dem detailbereich
bei seitenfuß steht die summe ganz unten, auch wenn nur wenige zeilen vorhanden sind.

eventuelle firmendaten (firmenbuchnr, kontonr, ...) kommen in den seitenfuß.

wie geagt muß dem bericht die id aus tbl_verleih übergeben werden.
das geht am einfachsten, wenn du den bericht gleich aus dem formular öffnest. wenn du den bericht bei geschlossenem formular öffnest, wirst du zur eingabe der id aufgefordert.

damit kann eine sql-anweisung erstellt werden, die alle daten enthält. mit access geht das sehr leicht. im berichtsentwurf kann die abfrage mit dem assistenten erstellt werden. in dieser abfrage wird als parameter formular!verleihid verwendet.

ich glaube noch kleiner oder einfacher ist das gewünschte ergebnis nicht zu erreichen.

WB

BigNfan 09.03.2003 12:48

gut

ich mach die verleihID als globale variable

oben steht eh mei abfrage

die schreib i in ne abfrage statt in den code und dem listfeld weise ich die abfrage zu

nur wie schreib i die globale variable in die sql-abfrage damit er sie annimmt ?

wbendl 09.03.2003 14:20

ich glaube wir reden aneinander vorbei.
es gibt kein listenfeld im bericht.

und auch im formular macht es wenig sinn. ein unterformular ist viel besser.

im detailbereich des berichts ist ein textfeld für jedes feld das angezeigt werden soll. das ergibt 1 zeile.

bei öffnen des berichts wird diese zeile entsprechend der Anzahl der daensätze wiederholt und mit daten gefüllt.

die abfrage wird im entwurf des berichts definiert.
im feld verleihid gibst du als parameter dein formular!verleihid an.

für die minimalversion mußt du keinen code schreiben

im formular brauchst du eine schaltfläche zum öffnen des berichts.
die kannst du auch mit dem assistenten erstellen.

oder ist deine aufgabe die lösung in vba zu programmieren statt die möglichkeiten von access zu verwenden?

WB

BigNfan 09.03.2003 14:38

^hi
das formular gibts ja schon
öffnet den bericht

aber wie mach ich das?
die abfrage wird im entwurf des berichts definiert.
im feld verleihid gibst du als parameter dein formular!verleihid an.

ich versteh leider nicht wie du das meinst

wbendl 09.03.2003 15:32

1. bericht in der entwurfsansicht öffnen

2. sicherstellen daß bericht ausgewählt ist

3. eigenschaftsfenster öffnen und register daten auswählen

4. datenherkunft löschen und cursor in die zeile datenherkunft setzen

5. auf die schaltfläche mit ... klicken --> der assistent erscheint

6. alle benötigten tabellen hinzufügen

7. falls keine beziehungen definiert sind, mußt du es jetzt machen

8. die gewünschten felder in die abfrage ziehen

9. im feld verleihid folgende bedingung eintragen:
Wie [forms]![formularname]![feldname], formularname und feldname anpassen

10. ab und zu den assistenten schließen um die sql-anweisung zu speichern

11. auf die schaltfläche ansicht (links oben) klicken --> das ergebnis der abfrage wird angezeigt. wenn das formular nicht geöffnet ist, wirst zur eingabe der bestellid aufgefordert.

12. wenn du die abfrage erstellt hast, den assistenten beenden

13. feldliste öffnen und die gewünschten felder im entwurf platzieren

14. bei einer tabellenartigen darstellung der verleihzeilen die bezeichnungsfelder im kopf platzieren

alternativ kannst du die abfrage auch als abfrage erstellen, und im bericht die datenherkunft auf diese abfrage einstellen

du hast wohl noch nicht sehr viel mit access gemacht.
falls du probleme hast ruf mich heute unter 0590591/62320 an.

dann machen wir es gemeinsam.

WB

wbendl 13.03.2003 21:11

laß mal hören ob es schon funktioniert.

wenn nicht, bin ich freitag ab 18:00 wieder tel. erreichbar

WB

BigNfan 14.03.2003 08:30

ja funkt danke

hab zwar ned die globale variable übergeben können aber ein textfeld

hab im formular ein unsichtbares textfeld wo ich die variable reinschreib und dann mach im bericht [forms]![formularname]![feldname]

wbendl 14.03.2003 11:22

super!

übrigens war das auch so gedacht, das die verleihid in einem textfeld steht, das aus der tabelle gefüllt wird.

WB

BigNfan 15.03.2003 15:02

aso :D

hab mir gedacht ich hab nur gepfuscht *fg*
irgendwie blöd dass das mit ner globalen variable ned geht..


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:42 Uhr.

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