Fahrtenbuch-DB / VB

hallo,

ich schreibe ein kleines programm, wo es um die verwaltung von einer art fahrtenbuch geht. die datenbank wir in access erstellt. habe schon eine tabelle in der so daten wie name des fahrers, adresse des fahrers, tour, km_geld, usw. gespeichert werden.
nun ist es so, dass man das fahrtenbuch wöchentlich (aufgelistet von montag bis freitag) und monatlich (gesamtkilometer x kilometergeld) ausdrucken muss. jetzt geht es darum, die daten in einer tabelle zu speichern, so dass man sie später nochmals aufrufen kann. aber wie macht man das am besten??

es sollten folgende werte in der tabelle gespeichert werden:

  • anzahl/anfahrtsstellen
  • benötigte stunden
  • km-stand abfahrt
  • km-stand ankunft
  • gefahrene km

und wie kann ich es erreichen, dass wenn man eine alte monatsliste aufruft, die kompletten monats-km angezeigt werden?? soll ich da zwei tabellen erstellen, eine die die wochenlisten, eine die die monatslisten speichert??

danke für hilfe

axl

Hallo,

eigentlich ist es nicht notwendig Daten zwischenzuspeichern, die sich aus den bereits vorhandenen Daten ergeben. Über eine Abfrage erhälst Du immer den aktuellen Stand aus den vorhandenen Daten. Du kannst die Daten aus der Abfrage in einem Formular anzeigen lassen. Wenn Du eine Parameterabfrage verwendest, kann der gewünschte Zeitraum jedesmal beim Aufruf der Abfrage eingegeben werden.

ujk

Hallo,

Du kannst die Daten aus der Abfrage in
einem Formular anzeigen lassen. Wenn Du eine Parameterabfrage
verwendest, kann der gewünschte Zeitraum jedesmal beim Aufruf
der Abfrage eingegeben werden.

hmm, aber wie kann ich in einer abfrage formulieren, wieviel gesamt-km das auto in der 23 kalenderwoche hatte?? dass muss ich doch dann woche für woche bzw. tag für tag in einer DB hinterlegen, oder?? also ein ein datensatz ungefähr so ausschaut:

KalenderWoche|Jahr|anfahrtsstellen|tages_KM|gesamt_KM
wobei die ersten 2 felder den key ergeben.

dann brauch ich noch eine tabelle die die monatswerte speichert, also so:
monat|jahr|anfahrtsstellen_im_monat|monats_KM
wieder sind die ersten beiden felder die keys.

das wäre jetz meine lösung gewesen als anfäbger. oder ist das falsch oder zu umständlich??
es soll ja später so sein, dass die werte auf knopfdruck in ein formular eingefügt werden, welches man dann ausrducken kann. vorher soll man auswählen können, welche werte man haben will. also die aktuellen tages-/monatswerte, oder einen wert von vor 4 moanten.

schönen tag noch.
axl

Hallo,

->

KalenderWoche|Jahr|anfahrtsstellen|tages_KM|gesamt_KM
wobei die ersten 2 felder den key ergeben.

jein … Kleinste Informationseinheit ist (soweit ersichtlich) ja der Tag, also muß auch diese Information gespeichert werden:

MitarbeiterID|Datum (oder aufteilen Tag|Monat|Jahr)|tagesKM|Anfahrtstellen

die Gesamtkilometer und die Gesamtanfahrtstellen ergeben sich ja aus der Summe der Tageskilometer, wieso also diese Daten nochmals speichern?
(sinngemäße Abfrage: gib mir die Summe aller Kilometer, die summe aller Anfahrtstellen, bei denen die MitarbeiterID = die vom Klaus ist und das Datum in der KW xy liegt)

dann brauch ich noch eine tabelle die die monatswerte
speichert, also so:
monat|jahr|anfahrtsstellen_im_monat|monats_KM
wieder sind die ersten beiden felder die keys.

warum das denn? - ebenfalls Ergebnis einer Abfrage!
(gib mir die summe aller Kilometer, die summe aller Anfahrtstellen bei denen die MitarbeiterID = die vom Heinz und der Monat des Datums = Januar ist)

Über das Gruppieren von Daten, kann man auch fortlaufende Abfrageergebnisse erhalten:

(gib mir die Summe aller Kilometer, die Summe aller Anfahrtstellen, gruppiert nach der MitarbeiterID und Gruppiert nach dem Monat vom Datum)

das wäre jetz meine lösung gewesen als anfäbger. oder ist das
falsch oder zu umständlich??

es ist ein typischer Fehler, den fast jeder am Anfang macht, nämlich Daten zu speichern, die bereits gespeichert sind.

es soll ja später so sein, dass die werte auf knopfdruck in
ein formular eingefügt werden, welches man dann ausrducken
kann. vorher soll man auswählen können, welche werte man haben
will. also die aktuellen tages-/monatswerte, oder einen wert
von vor 4 moanten.

Das wäre dann eine Abfrage, die entweder direkt auf ein Formular basiert, also als Bedingung für einen bestimmten Wert (s.o. xy) den Inhalt eines Formularfeldes hat, oder noch rudimentärer, einfach eine Variable, die bei Ausführung der Abfrage automatisch abgefragt wird.

hmm, aber wie kann ich in einer abfrage formulieren, wieviel
gesamt-km das auto in der 23 kalenderwoche hatte?? dass muss
ich doch dann woche für woche bzw. tag für tag in einer DB
hinterlegen, oder?? also ein ein datensatz ungefähr so
ausschaut:

Das wäre folgende Abfrage:
(gib mir die Summe der Kilometer bei denen Kalenderwoche vom Datum = 23 ist)

Ich habe bewußt drauf verzichtet, hier SQL-Statements o.ä. hinzuschreiben, da man als Anfänger sicher besser dran ist, die DAten mittels des Abfrageentwurfs zusammenzuklicken.

Übrigens muß die MitarbeiterID durch die AutoID ersetzt werden, wenn die Daten ausschließlich fahrzeugbezogen erfasst werden sollen - entsprechend beide, wenn Auswertungen fahrzeug- und/oder mitarbeiterbezogen erfolgen müssen.

Gruß
D. Scholdei

hallo daniel

erstmal vielen dank für die ausführliche antwort!!

Kleinste Informationseinheit ist (soweit ersichtlich)
ja der Tag, also muß auch diese Information gespeichert
werden:

MitarbeiterID|Datum (oder aufteilen
Tag|Monat|Jahr)|tagesKM|Anfahrtstellen

also das programm soll sich nur auf EINEN mitarbeiter beziehen (bzw. hat jeder dann ein programm) und auf EIN auto. folglich kann ich doch die mitarbeiterID weglassen, oder?! dann kann ich doch das datum als key hernehmen.

die Gesamtkilometer und die Gesamtanfahrtstellen ergeben sich
ja aus der Summe der Tageskilometer, wieso also diese Daten
nochmals speichern?

die anfahrtsstellen ergeben sich aus der summe der tagesKM??? nein. aus den tagesKM kann ich lesen wie weit ich an einem tag gefahren bin, aber nicht ob ich 5 oder 7 stellen angefahren habe.

dann brauch ich noch eine tabelle die die monatswerte
speichert, also so:
monat|jahr|anfahrtsstellen_im_monat|monats_KM
wieder sind die ersten beiden felder die keys.

warum das denn? - ebenfalls Ergebnis einer Abfrage!
(gib mir die summe aller Kilometer, die summe aller
Anfahrtstellen bei denen die MitarbeiterID = die vom Heinz und
der Monat des Datums = Januar ist)

aber wie weiß die DB das 01 der januar ist??

Über das Gruppieren von Daten, kann man auch fortlaufende
Abfrageergebnisse erhalten:

(gib mir die Summe aller Kilometer, die Summe aller
Anfahrtstellen, gruppiert nach der MitarbeiterID und Gruppiert
nach dem Monat vom Datum)

es soll ja später so sein, dass die werte auf knopfdruck in
ein formular eingefügt werden, welches man dann ausrducken
kann. vorher soll man auswählen können, welche werte man haben
will. also die aktuellen tages-/monatswerte, oder einen wert
von vor 4 moanten.

Das wäre dann eine Abfrage, die entweder direkt auf ein
Formular basiert, also als Bedingung für einen bestimmten Wert
(s.o. xy) den Inhalt eines Formularfeldes hat, oder noch
rudimentärer, einfach eine Variable, die bei Ausführung der
Abfrage automatisch abgefragt wird.

ja genau, die eingegeben zahl wird in eine variable gegeben und dann damit die DB abgefragt.

hmm, aber wie kann ich in einer abfrage formulieren, wieviel
gesamt-km das auto in der 23 kalenderwoche hatte?? dass muss
ich doch dann woche für woche bzw. tag für tag in einer DB
hinterlegen, oder?? also ein ein datensatz ungefähr so
ausschaut:

hmm, wie würde nun deiner meinung die DB ausschauen?? also ich habe eine tab MITARBEITER mit den mitarbeiterDaten (name, anschrift, tournr, blablabla…)
dann eine tab TAGESKM (datum, tagesKM, anfahrtsstellen).

aber nun fehlt doch noch eine, oder?? wie kann ich daraus den km-stand des fahrzeugs ermitteln?? den muss ich doch auch irgendwo hinterlegen. zumal das auto auch privat genutzt wird und man somit die KM nicht immer direkt aufrechnen kann.

schönen gruß
axl

hallo,

nimm einfach Excel und eien Pivat Tabelle.

Das macht am wenigsten Stress.

Gruß Hans

Moin,

Kleinste Informationseinheit ist (soweit ersichtlich)
ja der Tag, also muß auch diese Information gespeichert
werden:

MitarbeiterID|Datum (oder aufteilen
Tag|Monat|Jahr)|tagesKM|Anfahrtstellen

also das programm soll sich nur auf EINEN mitarbeiter beziehen
(bzw. hat jeder dann ein programm) und auf EIN auto. folglich
kann ich doch die mitarbeiterID weglassen, oder?! dann kann
ich doch das datum als key hernehmen.

Soll da etwa jeder eine eigene Datenbank bekommen? ich denke doch
eher, daß die einzelnen Mitarbeiter in der Firma dann die entsprechenden
Einträge machen und die Auswertung dort erfolgt?! wenn nicht, dann kann
man natürlich die MitarbeiterID da raus lassen. Wenn das eher ne DB für
die Zentrale wird, dann sollten die Daten schon zentral gehalten werden und damit wäre dann auch die ID notwendig.

die Gesamtkilometer und die Gesamtanfahrtstellen ergeben sich
ja aus der Summe der Tageskilometer, wieso also diese Daten
nochmals speichern?

die anfahrtsstellen ergeben sich aus der summe der tagesKM???
nein. aus den tagesKM kann ich lesen wie weit ich an einem tag
gefahren bin, aber nicht ob ich 5 oder 7 stellen angefahren
habe.

deswegen muß in die Tagestabelle ja nebend der (ID) und dem Datum auch die Tageskilometer UND die Anfahrtstellen - hatte ich aber glaub auch geschrieben.

Damit kann man die Gesamtkilometer in einem Zeitraum UND die Anfahrtstellen in einem Zeitraum durch aufsummieren bestimmen.

dann brauch ich noch eine tabelle die die monatswerte
speichert, also so:
monat|jahr|anfahrtsstellen_im_monat|monats_KM
wieder sind die ersten beiden felder die keys.

warum das denn? - ebenfalls Ergebnis einer Abfrage!
(gib mir die summe aller Kilometer, die summe aller
Anfahrtstellen bei denen die MitarbeiterID = die vom Heinz und
der Monat des Datums = Januar ist)

aber wie weiß die DB das 01 der januar ist??

in dem du die Abfrage entsprechend gestaltest … du speicherst ja zu jedem Datensatz das Datum mit, so daß du sagen kannst, gib mir alle Datensätze, wo der Monat des DAtums = Januar ist (Jahr muß ebenfalls gefiltert werden, sonst bekommst du nach nem Jahr eben die DAten von zwei Januaren ;I )

Über das Gruppieren von Daten, kann man auch fortlaufende
Abfrageergebnisse erhalten:

(gib mir die Summe aller Kilometer, die Summe aller
Anfahrtstellen, gruppiert nach der MitarbeiterID und Gruppiert
nach dem Monat vom Datum)

es soll ja später so sein, dass die werte auf knopfdruck in
ein formular eingefügt werden, welches man dann ausrducken
kann. vorher soll man auswählen können, welche werte man haben
will. also die aktuellen tages-/monatswerte, oder einen wert
von vor 4 moanten.

Das wäre dann eine Abfrage, die entweder direkt auf ein
Formular basiert, also als Bedingung für einen bestimmten Wert
(s.o. xy) den Inhalt eines Formularfeldes hat, oder noch
rudimentärer, einfach eine Variable, die bei Ausführung der
Abfrage automatisch abgefragt wird.

ja genau, die eingegeben zahl wird in eine variable gegeben
und dann damit die DB abgefragt.

hmm, aber wie kann ich in einer abfrage formulieren, wieviel
gesamt-km das auto in der 23 kalenderwoche hatte?? dass muss
ich doch dann woche für woche bzw. tag für tag in einer DB
hinterlegen, oder?? also ein ein datensatz ungefähr so
ausschaut:

hmm, wie würde nun deiner meinung die DB ausschauen?? also ich
habe eine tab MITARBEITER mit den mitarbeiterDaten (name,
anschrift, tournr, blablabla…)
dann eine tab TAGESKM (datum, tagesKM, anfahrtsstellen).

aber nun fehlt doch noch eine, oder?? wie kann ich daraus den
km-stand des fahrzeugs ermitteln?? den muss ich doch auch
irgendwo hinterlegen. zumal das auto auch privat genutzt wird
und man somit die KM nicht immer direkt aufrechnen kann.

irgendwie …

Wenn du Privatfahrten hast, müssen die dann entsprechend ebenfalls erfasst werden, sonst kann man natürlich keine Km-Stände der Fahrzeuge berechnen.

ich hab dir mal nen schnellen Entwurf von der Datenbank gemacht, damit du nachvollziehen kannst, was ich eigentlich meine. Mail ist unterwegs.

Gruß
Daniel

tach,

habe dir eine antwortmail geschrieben, weiß aber nicht ob sie ankam. denn ich habe folgende mail zurück bekommen:
„ScanMail could not scan a document because of during a real-time scan of
the mail traffic.“

wollte dir auch meinen entwurf zumailen, im mdb-format.
hier voarb schon mal ´die mail:

hallo daniel,

vielen dank für deienn entwurf und danke für die mühe.

also sieht gut aus, aber ich habe gestern abend auch mal was in
access gebastelt (modellweise) und maile es dir nun mal zu.
es ist so, dass nur ein mittarbeiter mit der software arbeiten wird. aus
diesem grund muss man nur einen mitarbeier anlegen. das wird gleich zu
beginn abgeftragt, d.h. man muss einen USER angeben…einmalig.
das mit dem KM-stand des autos ist noch ein problem. es ist unvorteilhaft,
wenn man auch immer alle privatfahrten in dem programm eintragen muss um den
aktuellen km-stand des fahrzeugs zu errechnen. aus diesem grund dacht ich
mir, dass man den gesamt-km-stand nicht aufrechnet, sondern als wert, der
eingegeben werden muss, in die DB einträgt.
also nur den momentanen km-stand + die tages-km. daraus rechnet man dann den
neuen km-stand.

soweit so gut, schau dir mal meien DB an. vor allem weiß ich nicht, ob man
bei der einen tab das datum so splitten aknn und die drei felder
(tag/monat/jahr) als key verwenden kann?!?!?

schöenen abend

axl