PDA

Vollständige Version anzeigen : Hilfe bei Berichten


Freeman_GER
24.01.2008, 14:48
EIN absoluter Anfänger braucht Eure HILFE!!!

Ich habe nun meine Db soweit stehen und ich habe auch einige Formulare dazu angefertig. Es funktioniert alles super, jetzt möchte ich zum Beispiel Auswertung erstellen und diese Ausdrucken. Ich weiß das ich dafür am Besten mit Berichten arbeite, nur habe ich leider noch nie welche erstellt. Mein Prof sagt nur das ist doch ganz einfach. Ich aber habe gerade das Gefühl das ich total auf dem Schlauch stehe.

Ich möchte z. B. Alle meine Geräte mit den dazu gehörigen Einnahmen ausdrucken, oder ich möchte nur ein Gerät mit den entsprechenden Einnahmen vom Tag x bis zum tag y ausdrucken.

Ich habe absolut keinen Schimmer wie ich vorgehen soll. Ich habe ein Formular(Auswertung) auf dem ich ein Hyp-Link gesetz habe, der auf einen Bericht (Parkscheinautomat) verweist. Dieser Bericht erstellt für alle Geräte die dazu gehörenden Einnahmen.

Nur wie gehe ich jetzt weiter vor?
Ich möchte nun einen Bericht haben für ein bestimmtes Geräte mit dem entsprechenden Zeitraum für die Einnahmen bestimmen. Wie mache ich das? Kann mir jemand von Euch helfen?

Ich habe wirklich noch keine Ahnung?

Ich habe eine Tab: Geräte
Ich habe eine Tab: Einnahmen


Über Eure Hilfe würde ich mich sehr freuen!!!!

Gruß vom Freeman_GER

PS: anbei habe ich mal eine kleine Bsp DB mit geschickt
_________________
Freeman_GER

- der so langsam verzweifelt und das Gefühl nicht mehr los wird, das die Lösung direkt vor seinen Augen liegt, aber er sie immer noch nicht sieht!

hcscherzer
24.01.2008, 15:26
Moin,
probier mal die Steuerung statt mit Bezeichnungsfeld und Hyperlink mit Buttons.
Für den Button legst Du eine 'Beim Klicken' Ereignisprozedur an.
Und dadrin rufst Du dann den passenden Bericht auf:docmd.openreport "DeinBericht"Wenn Du Filter anlegen willst, musst Du irgendein Control zur Festlegung des Filters in Dein Formular einbauen (Listenfeld, Kombifeld, Textfeld).
Auch (und das zuallererst) solltest Du über die Datenstruktur nachdenken. Mindestens gehören die beiden Tabellen verknüpft. Die Zeiten gehören in eine Extra Tabelle, denn ein Automat wird doch mehrfach geleert, oder? Ich versteh allerdings (noch) nicht so ganz, worauf Du hinauswillst. Wofür dient die Tabelle 'Ein Konto'? Sind das die Entleererinnen???

Lanz Rudolf
24.01.2008, 15:27
Hallo
ich weiss nicht ob Dich mein Anhag weiter bringt

Du könntest das ganze Seletieren der Gewünschten Daten eben schon in einer Abfrage die Du als Datenherkunft Verwndest machen
und ungefähr das wird im anhang behandelt


@Hans-christian SORRY habe Dein Beitrag nicht gesehen, Doch meinse zielt ja in eine andere richtung und setzt natürlich dass was Du geschriben hast voraus.

peterffw
24.01.2008, 16:17
Hi,

mal ein Ansatz zumindest mit der Auswahl eines Parkautomaten. Wenn Du im Feld einen Parkautomaten auswählst, dann kommt auch nur der Automat. Wenn Du nichts auswählst, dann kommen alle Automaten. Das mit dem Saldo im Bericht habe ich noch nicht berücksichtigt, ebenfalls die Auswahl des Leerungsdatums. Da ich ein dringendes Problem hier lösen muss bei Bedarf dann morgen.

Servus
Peter

Freeman_GER
25.01.2008, 07:30
Hallo erst einmal,

erst einaml Danke das ihr mir helft.

@hcscherzer
Auch (und das zuallererst) solltest Du über die Datenstruktur nachdenken. Mindestens gehören die beiden Tabellen verknüpft. Die Zeiten gehören in eine Extra Tabelle, denn ein Automat wird doch mehrfach geleert

Die Tablellen sind eigentlich auch verknüpft. Habe ich leider vergessen sie wieder in meinem Bsp zu verküpfen, nachdem ich einige DS gelöscht habe.
Nur was du mit den Zeiten meinst das weiß ich nicht so genau? Warum ist es sinnvoll die Zeiten in eine seperate Tabelle zu packen?
Ich habe 1 Automaten der hat am Tag x,y,z eine Entleerung
Ich habe x automaten die haben am Tag w,y,z jeder eine Entleerung
Ich muss auswerten wieviel ein bestimmter Automat eingenommen hat im Zeitraum von bis
Ich muss auswerten wieviel haben die Automaten a,b,c im Zeitraum von bis eingenommen
Ich muss auswerten wieviel haben die Automaten eingenommen im Zeitraum von bis.

@peterffw
Das was Du gemacht hast zielt genau in die Richtung in die ich brauche. Ich muss es jetzt nur noch hinbekommen den Zeitraum mit zu berücksichtigen.

Für Vorschläge bin ich als Anfänger mit ACCESS immer zu haben:)

Gruß Freeman_GER

peterffw
25.01.2008, 07:55
Hi,

zwei Fragen zu Deinen Anforderungen. Die Auswahl Leerungsdatum von und Leerungsdatum bis kann das jeweils ein freiwählbares Datum sein, oder muss es Bezug zu den gespeicherten Daten haben?

Und erklär mal was es mit dem Saldo im Bericht auf sich hat.

So wie du es in deinem Beitrag #5 geschildert hast. Bietet sich dann ein Listenfeld mit Mehrfachauswahl statt einem Kombinationsfeld an. Wenn man ohne Auswahl im Listenfeld einen Bericht wählt werden alle gedruckt. Ansonsten kann man wahlweise einen oder mehrere Automaten auswählen. Wäre das eine Lösung die für die brauchbar ist?

Servus
Peter

hcscherzer
25.01.2008, 08:10
Moin,
Nur was du mit den Zeiten meinst das weiß ich nicht so genau? Wenn Du alles in eine Tabelle packst, hast Du jede Menge Redundanz.
Die Parkuhren gehören imho in eine Tabelle (mit Standort, Nr usw.) aber die Entleerungen sollten in eine zweite.
Vielleicht soll das ja auch die Tabelle 'Ein Konto' sein? Da hätte mich der Name verwirrt.
Und die Felder 'klMuenze' und 'grMuenze' in der Mastertabelle ... wozu dienen die?

Freeman_GER
25.01.2008, 08:18
@peterffw

Hallo :)

Ja das Datum kann ein frei wählbares sein. z.b. vom 2.1.200X bis 14.5.200x.Das Datum ist nicht an das Leerungsdatum gebunden. es soll nur die entleerungen ausgewertet werden die sich z.B. in dem o.a. Zeitraum befinden.

der Saldo ist der Betrag des jeweiligen Automaten aus den jeweiligen TagesSummen von den vorherigen Leerungen.
sprich:
Automat A am 15.2.200x 100€....10€......110€........110€<--Saldo
Automat A am 17.3.200x 20€.... 5€....... 25€........135€ <--Saldo
Automat B am 15.2.200x 85€....32€......117€........117€ <--Saldo
....

Das hatte ich schon hinbekommen mit meiner Abfrage (Buchung_Abfrage). Jetzt muss ich mir aber den Kopf zerbrechnen wie ich das wieder hinbekomme, denn du beziehst dich ja für das Formular auf die Tabellen. Ich habe mal irgendwo gelesen, das man solche Summen über laufende Summe im Bericht einstellen kann. Leider habe ich das noch nicht hinbekommen:rolleyes:

Gruß Freeman_GER

peterffw
25.01.2008, 08:23
Hi,

ich versuche es mal nach deinen Angaben - alternativ mit einem Kontrollfeld und einem Auswahlfeld für die Parkscheinautomaten, und jeweils einer Auswahlmöglichkeit von/bis Datum.

Servus
Peter

Freeman_GER
25.01.2008, 08:33
Hallo hcscherzer

Wenn Du alles in eine Tabelle packst, hast Du jede Menge Redundanz.
Die Parkuhren gehören imho in eine Tabelle (mit Standort, Nr usw.) aber die Entleerungen sollten in eine zweite.
Vielleicht soll das ja auch die Tabelle 'Ein Konto' sein? Da hätte mich der Name verwirrt.
Und die Felder 'klMuenze' und 'grMuenze' in der Mastertabelle ... wozu dienen die?

die tab parkscheinautomat bezieht sich auf den Automaten
Standort, Gerätenummer, Betriebsarten(Muenzen, Kreditkarte usw.) gr.Muenze und kl Muenze sind reine Sachdateninfo's da einige Automaten nicht alle Münzen annehmen.
die tab Ein_Konto bezieht sich auf die Einnahmen der jeweiligen Automaten
Welcher Automat
Wann wurde die Leerung vorgenommen
Wieviele Parkscheine wurden verkauft
Wieviel Münzgeld wurde eingenommen
Wieviel wurde mit Kreditkarte bezahlt

also gruß und bis dahin........

Freeman_GER

peterffw
25.01.2008, 09:35
Hi,

anbei mal als Beispiel die Lösung mit einem Kombinationsfeld zur Auswahl der Parkautomaten. Wird kein Automat gewählt kommen nach einer Sicherheitsabfrage alle Automaten.
Wird kein von/bis Leerungsdatum eingegeben kommen alle Zeiträume entsprechend der Auswahl Automat.
Wird nur ein "Von"-Datum eingeben kommen alle Leerungen ab diesem Datum. Wird ein VON und BIS-Datum eingegeben, dann wird auf dieses Datum eingeschränkt.

Die Lösung mit dem Listenfeld dauert noch etwas.

Servus
Peter

peterffw
25.01.2008, 10:15
Hi,

so nun final die Lösung mit dem Listenfeld. Du kannst Dir dann aussuchen, was für Dich am praktikabelsten ist.

Die Hantirung sprich Auswahl (auch Mehrfachauswahl) in einem Listenfeld ist Dir hoffentlich bekannt. Sonst such in der Onlinehilfe oder melde Dich wieder.

Servus
Peter

Freeman_GER
25.01.2008, 11:04
Also erst einmal ein riesiges Danksschön an alle die mir hier geholfen habe.
Besonders Dir peterffw sage ich nochmals VIELEN VIELEN DANK! :)
Jetzt werde ich mir das übers WE reinziehen und verstehen lernen. Man lernt nie aus. Wenn ich noch Fragen dazu habe melde ich mich!

:grins: Und auch noch Sonne draussen, was will der Mensch mehr!


GRUß @ll

Freeman_GER

peterffw
12.02.2008, 10:08
Hi Christoph,

anbei nochmals ein Beispiel mit geänderten Listenfeldinhalt und einem zusätzlichen Button für alle Datensätze aus dem Listenfeld.

Servus
Peter

Freeman_GER
13.02.2008, 12:21
Hallo erstmal!! :) ;)

Ich habe ein Formular [UF_RP_BEL] genommen und in den Berichten "Belegung" und "BelegungXX" Felder plaziert, die mir den Prozentualen mittelwert wiedergeben. Dazu habe ich in der Datenherkunft des Berichtes den Prozentwert Proz_ge_9: Runden(([Stell_gebueh_9]/[Parkstaende_gesamt])*100;0)
berechnen lassen und im Steuerelement dann den Mittelwert"=Mittelwert([Stell_gebueh_9]) von diesem Feld errechnent lasse.(Anders kann ich es nicht machen, sonst für das zu einem Überlauf)

Der Bericht funktioniert alleine, sobald ich aber das Ereignis beim Öffen setzte "RecordSource = Mysql"
und dann aus dem Formular[UF_RP_BEL] den Button "SeitenansichtAUSWAHLFELD" benutze komme ich immer die Meldung Parameterwerte für die Felder [Stell_gebueh_9]. Was mache falsch?
Kannst mir jemand helfen?

Gruß Freeman_GER

peterffw
13.02.2008, 12:41
Hi Christoph,

dein Bericht "BelegungXX" hat eine eigene Datenherkunft "Select ...."
Im Open-Event wird die Datenherkunft aber auf die Konstante "Mysql" gesetzt, wobei der SQL-Befehl aber nicht deine ganzen Rundungsbefehle enthält.
Deshalb kommt die Parameterabfrage da Du im Report auf Felder aus der Datenherkunft zurück greifst, die aber in der Datenherkunft nicht existieren.

Also entweder im aufrufenden Formular die Zusammenstellung des Mysql-Befehles anpassen, oder im Openevent des Reports "belegungxx" die Zuweisung "Recordsource = Mysql" entfernen.

Ich habe dies mal gemacht, bekomme aber dann den Hinweis "Überlauf".

Man kann übrigens Deine Beispielmdb nicht laufen lassen, da die Tabelle "Parkscheinautomat" fehlt, das Listenfeld aber Bezug daruaf nimmt.

Servus
Peter

Freeman_GER
13.02.2008, 12:53
Hallo Peter!

Ich gebe dir Recht, aber mit dem SQL schaffe ich es ja das ich die Button benutzen kann und die Datumkriterien berücksichtigen kann.

hm ich verstehe nicht genau was du damit meinst: Ich habe dies mal gemacht, bekomme aber dann den Hinweis "Überlauf".
Somit muss ich das SQL anpassen. ?? Nur wie greife ich jetzt auf meine Felder[Proz_ge_9] in der Datensatzherkunft vom formular [UF_RP_BEL] per SQL zu.

Alles so neu, man lernt jeden Tag soviele Dinge hinzu!

Gruß Freeman_GER

PS habe den Anhang zuvor erneuert. (Jetzt mit der fehlenden Tab)

peterffw
13.02.2008, 19:35
Hi Christoph,

ich habe Dir die Lösung Deines Problemes wegen der enthaltenen Daten an Deine Mailadresse übermittelt. Geändert habe ich ein Formular und den darauf basierenden Report "BelegungXX".
Wenn Du noch Fragen hast, dann morgen mehr hier im Forum.

Servus
Peter

Freeman_GER
14.02.2008, 08:25
:) Hallo Peter!

HERZLICHEN DANK FÜR DIE VIELE MÜHE! :)

Es hat alles super geklappt. So hatte ich mir das fast auch gedacht mit dem VBA CODE, aber mich leider noch nicht genauer herangetraut.
Ich hatte schon eine Kopie des Formualrs angelegt und jedes mal diesen langen Verweis in den Code hineingeschrieben. Dabei kam mir das mit der Variable leider nicht in den Sinn :( .
Es gibt noch viel zu lernen. :boah:
Was mich jetzt noch einmal interessieren würde, warum es bei der "Parkschein.mdb" beim Einfügen des [Proz_geb9] Feldes zu einem Überlauf kam. Die Ursache möchte ich deshalb kennen, damit ich das nächste Mal darauf achtet und nicht wieder so einen Fehler mache.
Gleichzeitig wundert ich mich über ACCESS, das es diese ganze Berechnung nicht mit einem Mal absolvieren kann. Warum muss ich das in Einzelschritten machen um auf das Ergebnis zu kommen.

Also PETER ich kann mich nur noch einmal wiederholen:

HERZLICHEN DANK

Gruß Christoph (Freeman_GER)

peterffw
14.02.2008, 08:44
Hi Christoph,

ich vergleiche mal was zwischen der Parkschein.mdb und der aktuellen Datenbank anders ist, vielleicht finde ich es ja - interessiert mich auch!

Generell hätte ich es anders gemacht als Deine Lösung nun ist. Man kann darüber diskutieren, ob es sinnvoll ist diese Berechnungen in der SQL-Abfrage durchzuführen, oder dann im Bericht oder Formular. In SQL mache ich es eigentlich nur wenn das Ergebnis einer Berechnung als Kriterium gebraucht wird oder um Summen zu ermittlen. In Deinem Fall könnten alle Berechnungen im Report ausgeführt werden, entweder im einzelnen Feld oder wenn es komplexer wird auch in Funktionen z. B. im Detailbereich "beim Drucken"

Servus
Peter