Hallo,
ich habe eine Fahrtenbuch Datenbank erstellt diese enthält Daten wie Anfangsdatum, Zielort, Anfangs Zeit, End Zeit, Kilometer Stand Anfang, und Ende usw.
Meistens wird ja zu einem Objekt gefahren und dort Arbeiten verrichtet..
Also z.B. Objekt Huber, 2.1.13 KM Stand 93000 Anfang Zeit 6:00 End Zeit 6:15 93025 in der nächsten Datenzeile wäre dann das nächste Objekt
z.B. Objekt Mayer, 2.1.13 KM Stand 93025 Anfang Zeit 7:00, End Zeit 7:30 93100
Also wäre die Arbeitszeit bei Objekt Huber 45 Minuten am 2.1.13.
Ich weis das man nicht Äpfel mit Birnen mixen soll deshalb hab ich ja einige Tabellen für die Fahrtzeit und andere für das Objekt.
Möchte aber wenn es nicht zu schwierig ist die gleichen Daten wie Datum und Anfang Zeit nicht nochmals in meiner Objekt Tabellen neu eingeben müssen.
Soll man das mit Daten Kopieren erledigen oder die Tabellen anders strukturieren?
Bin mir leider nicht sicher wie es am Sinnvollsten wäre.
Hat jemand von Euch eine Ähnliche Situation oder vielleicht eine Tipp wie man das erledigen kann oder sollte.
Würde mich sehr über Eure Meinungen freuen!
Vielen Dank
Albert
Wozu solltest Du sie auch noch einmal irgendwo eingeben wollen ??? (Doppelte Datenhaltung -> böse)
Du hast die Zeiten doch. wenn Du sie irgendwo anders nutzen willst (Bericht/Formular) mach eine Abfrage, in der die Zeiten und die Objekte abgefragt werden......
Ist denn wirklich sicher, dass die Zeiten immer identisch sind ? Kann es nicht passieren, dass jemand zu Beginn z.B. der Mittagspause am Objekt eintrifft und damit die Zeiten differíeren ???
Oder ich verstehe dein Ansinnen nicht.
Hallo 69bruno,
danke für Deine Antwort.
Wie kann ich eine Abfragen erstellen wenn in einem Datensatz "AnfangsZeit und EndZeit der Fahrtzeit" bestimmt ist
und nur der Anfang Zeitpunkt des Objektes und welche Mitarbeiter ausgewählt werden?
Zusätzlich werden die Fahrtzeiten verschiedener Objekte unterschiedlich verrechnet z.B. Fahrtpauschale, Fahrtzeiten werden für den Fahrer verrechnet, Fahrtzeiten werden
komplett verrechnet.
Doppelt diese Daten einzutragen ist sicher nicht Optimal aber die Abfrage würde ja schwer zu realisieren sein wenn die Zeiten nicht in einem Datensatz erroiert werden können.
Sprich 1. Datensatz, Anfangszeit Fahrt, Endzeit Fahrt, Anfang Arbeit
und im 2. Datensat, Anfangszeit Fahrt, Endzeit Fahrt, Endzeit Objekt....
Was aber nicht immer mit den "Mitfahrern" unbedingt übereinstimmen muss.
Vielleicht muss da nochmals die Datenbank Struktur abgeändert werden??
Hoffe es ist so halbwegs verständlich wo die Probleme liegen :(
Vielen Dank
Albert
Hmmm, ja
da müsste glaube ich die Struktur mal analysiert werden.
In 2 Datensätze nach deiner Beschreibung mindestens 3 gleiche Datenfelder zu halten ist nicht gut.
Aber um die Struktur zu prüfen, müsste man mal die Tabellen und deren Verknüpfungen (gemeint: Beziehungen) sehen.
Ich kann mir im Moment auch nicht vorstellen, warum die Daten nicht in einem Datensatz enthalten sein könnten.....
Hallo Bruno,
vielen Dank für Deine mail!
Ich habe Dir im Anhang meine Datenbank angefügt.
Hoffe Du kannst es verstehen und mir eventuell einen Tipp geben.
Mfg
Albert
[Anhang gelöscht durch Administrator]
Ok.......
da ich nicht so geübt bin, solche Darstellungen "rückwärts" zu analysieren, darf mir auch gerne jemand anders aus dem Forum helfen, bzw. checken, ob ich richtig liege. ;D
Was mir auffällt, die Fahrtzeit erfasst Du in der tblObjMitarbeiter. Ich würde sie in tblFahrtenbuch erfassen. Dann frage ich mich, ob es vorkommen kann, dass eine Fahrzeugbesatzung bei der Rückfahrt anders zusammengsetzt sein kann, als bei der Hinfahrt, dann müsstest Du die Fahrten m.E. getrennt erfassen (tblHinfahrt/tblRückfahrt). Damit wäre auch die Beziehung nicht mehr 1:n von FB_ID zu Mit_FZ_FB_ID. Denn es springt ja während der Fahrt hoffentlich keiner auf halber Strecke aus dem Auto.
Was mich irritiert ist, das Du zumindets der Darstellung nach sowohl Anfangs- als auch Endzeiten in einem Datensatz ablegst, deshalb verstehe ich deinen letzten Beitrag nicht, in dem Du davon sprachst, dass die Zeiten in 2 unterschiedlichen Datensätzen wären.
Vom Ausgangsposting her, hast Du (fast) alles was Du brauchst. Lediglich die Formulare müssten (wahrscheinlich) angepasst werden, sodass dir bei Eingabe der Fahrten auch die Mitarbeiter zum Objekt in einem Ufo angezeigt werden. Dann kannst Du die Fahrtzeiten als Vorbelegung für die Arbeitszeiten nehmen und nur im Bedarfsfalle ändern.
Eine Abweichungstabelle zu erstellen, die nur dann Daten erfasst, wenn Arbeitszeiten von Fahrtzeiten abweichen, halte ich nicht zwingend für notwendig.
Wieso ich aber sage, dass Du fast alles hast...... Du erfasst in der tblObjMitarbeiter alle, die am Objekt gearbeitet haben. Aber ist das bei jedem Auftrag so ? Müsstest Du unterhalb des Objektes nicht nach einem Auftrag untergliedern, damit Du die passenden Daten für eine Zusammenstellung der benötigten Arbeits- und Fahrtzeiten kriegst ?
Wie ordnest Du zurzeit die Daten zu ? Über das Datum ?
Hallo Albert,
kurze Zwischenfrage:
Fällt die Fahrzeit eines Mitfahrers unter ARBEITSZEIT, die einem Objekt zugeordnet wird - und ist das immer so?
Wird die Fahrzeit eines FAHRERS immer als solche behandelt oder kann es sein dass auch diese unter Arbeitszeit für ein Objekt gerechnet wird?
Nachtrag:
Gibt es IMMER nur einen Mitfahrer pro Fahrt?
Danke nochmals für Deine mail!
ObjM_Fahrzeit ist noch ein altes Feld das aber nur ein Ja/Nein feld ist und mir dann eine Abfrage filtert...muss ich noch ändern.
Ansonsten werden die Fahrtzeiten in tblFahrtenbuch eingetragen also FB_Datum 1.1.13 FB_Anfang 6:00, FB_Ende 7:00.
Das wäre aber nun nur für die Fahrtzeit.
Bezüglich den 2.Datensätzen gebe ich Dir ein Beispiel.
Der Erste Datensatz enthält folgenden Zeit angaben!
Am 1.1.13 fuhr ich um 6:00 mit Fahrzeug A und Mitarbeiter B nach München zu Objekt C und komme dort um 7:00 Uhr an.
Den Kilometerstand bei der Abfahrt und Ankunft notiere ich mir natürlich auch.
Die Ankunftszeit ist nun gleichzeitig die Anfangszeit für meine Arbeit am Objekt.
Also noch im Datensatz 1 enthalten.
Der zweite Datensatz enthält nun das wir am 1.1.13 um 16:00 wieder von Objekt C mit Mitarbeiter B und Fahrzeug A nach Objekt A zurück gefahren sind.
Also ist im ersten Datensatz die Anfangszeit des Objektes enthalten und im zweiten Datensatz die Endzeit des Objektes enthalten.
Also Datensatz 2 - Datensatz 1 = Objekt Arbeitszeit...
Die daten werden über Datum zugeordnet das stimmt.
Schöne Grüße
Albert
Hallo Peter,
nein die Fahrzeiten werden immer total unterschiedlich berechnet.
Einmal eine Fahrtenpauschale, einmal die Fahrtzeit von nur einem Mitarbeiter manchmal für alle Mitarbeiter mit einen anderen Stundensatz als den der beim Objekt
verrechnet wird.
Es kommt halt immer drauf an wie wir es mit dem Objekt oder Bauherrn ausknobeln können ;)
Es können 1 oder zwei Mitarbeiter im Auto sitzen.
Also leider wiedermal nicht ganz so einfach meine Datenbank :(
Lg
Albert
Hallo Albert,
somit handelt es sich bei der Erfassung und Speichrung der Zeiten um KEINE doppelte Datenhaltung, da Fahrzeiten und Arbeitszeiten unterschiedlich zu sehen sind (Äpfel- und Birnenprinzip)
Was du realisieren KÖNNTEST wäre auf Formularbasis auf die Situaltion zu reagieren und bei Bedarf die Fahrzeiten als Arbeitszeit in die tblObjMitarbeiter zu übertragen.
Ich gehe dabei davon aus, dass mit den Daten dieser Tabelle die REINEN ARBEITSZEITEN für ein Objekt abgerechnet werden sollen.
Wenn ich nun dein Beispiel vom 1.1.2013 hernehme (löblich am Neujahrstag zu arbeiten ::)), hast du als Fahrer 1 Stunde Fahrzeit, die via Fahrtenbuch als solche abgerechnet werden kann.
Der Mitfahrer soll in diesem Beispiel die Fahrzeit bereits als Arbeitszeit berechnet bekommen - daher wird dessen Fahrzeit automatisch in die tblObjMitarbeiter als neuer Datensatz eingefügt.
Am Objekt fallen dann für beide 9 Stunden ARBEITSZEIT an, die in die Tabelle tblObjMitarbeiter einzutragen währen - also 2 Datensätze da ja 2 Mitarbeiter betroffen sind.
Für die Rückfahrt gilt dann das Gleiche wie für die Hinfahrt, also wieder ein DS in die tblObjMitarbeiter für den Mitfahrer.
Wird nun das Objekt 'abgerechnet' sieht die Situation so aus, dass alle DS aus der tblObjMitarbeiter zusammengerechnet (Stundensatz-id ist lobenswerter Weise auch vorhanden)
die zu verrechnende ARBEITSZEIT ergeben und die DS aus der tblFahrtenbuch (Join auf tblMitFZ) für den Fahrer (als solcher gekennzeichnet) die reinen Fahrzeiten des Fahrers ergeben.
Klingt oder liest sich kompliziert - ist es aber im Grunde nicht, du arbeitest ja nach diesem Modell nicht erst übermorgen sondern schon länger, daher hat sich das in deinem
Geschäftsmodell genau so etabliert, einzig die Eingaben in die Datenbank stellen u.U. eine Neuerung dar.
Nun soll sich das Geschäftsmodell ja nicht an der Datenbank orientieren sondern umgekehrt und da sehe ich keine groben Probleme.
Am Datenmodell selbst solltest du ändern, das die Felder Obj_Fahrzeit und ObjM_Fahrzeit aus den jeweiligen Tabellen genommen werden.
Dieses stellen berechnete Daten dar und die sollten nicht unbedingt in Tabellen gespeichert werden.
Weiter fehlt die Bezeihung zwischen tblObjekte und tblFahrtenbuch.
Die Tabellen, deren Fremdschlüssel in deiner BeispielDB zu sehen sind - denke ich - werden ja existieren.
Fazit:
Erfasse Fahrten als solche und Arbeitszeiten als sloche.
Überlege/Erstelle eine Möglichkeit bei der Erfassung von Fahrzeiten diese bedarfsbezogen automatisch auch in die tblObjMitarbeiter eintragen zu können.
Erstelle in der tblMitFZ ein zusätzliches Feld (ja/nein) um den automatisierten Übertrag zu kennzeichnen (damit das nicht unabsichtlich mehrfach passieren kann)
wennn du diese automatisierte Übergabe der Zeiten auch wirklich realisieren willst.
Gestalte die betreffenden Formulare so, dass du beim Eintragen von Daten immer siehst was schon alles vorhanden ist - also HF/UF - Konstrukte, du erleichterst dir damit Einiges.
Bei weiteren Fragen ... eh klar... ;) ;D
Schönen Tag noch!
Hallo Peter,
ich bekomme das mit der Abfrage noch nicht ganz hin.
Wie muss ich da wieder vorgehen :(
Es werden oder es müssen ja daten von unterschiedlichen tabellen also tblFahrtenbuch und tblMitFZ in die tblObjeMitarbeiter eingefügt werden.
Mit einer Anfüge Abfrage wollte oder hab ich es versucht bekomme aber immer wieder Fehlermeldungen.
Muss es gleich mit VBA realisiert werden??
Danke
Lg
Albert
Hallo Albert,
in der angehängten MusterDB findest du im frmKfz eine Befehlsschaltfläche mit der Aufschrift 'Daten übertragen'.
Der Code im Klick-Ereignis trägt die benötigten Daten der Mitfahrer in die tblObjMitarbeiter ein, Kennzeichnet diesen Eintrag als Fahrzeit
und kennzeichnet den Datenübertrag in der tblMitFZ (hier habe ich ein Feld für diesen Zweck hinzugefügt)
Alles abhängig vom markierten Datensatz des ersten UFo
Ich habe mit der Darstellung der Unterformulare ein wenig herumgespielt, daher mag es sein,
dass sie für dich ein wenig verändert aussehen - hat aber nichts mit deren Funktion zu tun ;)
Hoffe du kannst mit dem Ding was anfangen ;D
LG
[Anhang gelöscht durch Administrator]
Hallo Peter,
vielen Dank für die DB ich werde sie mir gleich anschauen und Dir bescheid geben :)
Danke
Albert
Hallo Peter,
leider sind wir da etwas auf dem Holzweg ;D
Ich habe mal eine neue Datenbank angefügt und hoffe Du kannst diese mal ansehen ... hab die alten Verknüpfungen behalten aber neue Tabellen
erstellt.
tblHF, tblRF, und die dazugehörigen Zwischentabellen.
Hallo Peter,
leider sind wir da etwas auf dem Holzweg ;D
Ich habe mal eine neue Datenbank angefügt und hoffe Du kannst diese mal ansehen ... hab die alten Verknüpfungen behalten aber neue Tabellen
erstellt.
tblHF, tblRF, und die dazugehörigen Zwischentabellen.
In meiner DB sollten folgende Punkte realisiert werden.
1. Das Fahrtenbuch soll Auskunft über wer ist gefahren und zu welcher Zeit und Datum. Anfangszeit und Endzeit der Fahrtzeit und zu welchen Objekt. Hinfahrt und Rückfahrt. Die kann ja auch manchmal unterschiedlich sein . Also zwei Mitarbeiter fahren mit einem Auto zu einem Objekt eine Stunde später kommen noch weitere Mitarbeiter die an dem selben Objekt aber mit einem anderen Fahrzeug fuhren auf das selbe Objekt. Vielleicht fahren dann auch Mitarbeiter in auf ein anderes Objekt weiter...
2. Das Objekt soll Auskunft darüber geben welcher Mitarbeiter und wie lange diese an einem Objekt gearbeitet haben liefern.
3. Eine Abfrage soll mir die gesamt Zeit der Mitarbeiter pro Objekt inklusive und exclusive Fahrtzeit liefern.
4. Eine Abfrage soll mir die gesamt Stunden meiner Mitarbeiter pro Monat liefern also ein Arbeitsblatt mit den verschiedenen Objekt Orten und Gesamt Stunden pro Tag und des Monats die dort aufgebracht wurden.
Um die Monatliche Abrechnung erledigen zu können.
5. Die Abrechnung der Objekte erfolgt oder sollte auch realisierbar sein. Jetzt ist es aber so das manchmal eine Fahrten Pauschale für ein Objekt verrechnet werden muss. Also 50 Euro pro Arbeitstag am Objekt.
Oder es werden alle Fahrtzeiten verrechnet die unsere Mitarbeiter aufgebracht haben aber mit einem Stundensatz x also anders als der Normale Stundensatz.
Manchmal wird ein Stundensatz für die Km verrechnet.
Na ja es sind doch einige Unterschiedliche Verrechnungsarten zu berücksichtigen.
Die Endzeit von der Fahrt also Endzeit von der Hinfahrt würde ja den Anfangszeitpunkt des Objektes liefern also mit Normaler Stundensatz Berechnung.
Und die Anfangszeit der Rückfahrt würde die Endzeit des Objektes bedeuten.
Darum würde ich nicht gerne all die Daten die ja schon einmal eingetragen wurden nochmals eingeben müssen auch wegen der Fehlerquellen natürlich.
Hoffe jemand kann mir mit meiner DB und meinen Anliegen nochmals helfen.
Mfg
Albert
[Anhang gelöscht durch Administrator]
Hallo Albert,
folgendes immer auf die ältere Version der DB bezogen:
zu 1:
Das Fahrtenbuch zeigt alle Fahrzeiten und zugehörige Daten der Fahrer.
Ob es sich dabei um eine Hinfahrt oder eine Rückfahrt handelt ist so nicht ersichtlich, es werden keine Ausgangspunkte erfasst - z.B. Firma ... Ojekt ... oder Objekt ... Firma
Die Fahrzeiten der Mitfahrer werden automatisch in die Tabelle tblObjMitarbeiter übertragen und dort als Fahrzeit gekennzeichnet.
Wenn es nun so sein soll, dass ein MA bei Objekt A 'abgeladen' wird und ein weiterer MA zu Objekt B weiterfährt ist es klar, dass nicht beide MA-Zeiten dem Objekt A zugeordnet werden dürfen.
Das kann aber mit einer Fragestellung bei der automatischen Datenübertragung gelöst werden (mittels MsgBox ... Zeiten von Max übernehmen ja / nein).
Wenn nun ein MA zu einem weiteren Objekt gefahren wird oder selbst weiterfährt ist das ein neuer Datensatz im Fahrtenbuch, sonst stimmen die Zeiten und km nicht überein.
zu 2:
Ich habe ja angeregt Fahrzeiten und Arbeitszeiten getrennt zu erfassen - was ja m.E. auch Sinn macht.
Wenn nun ein MA von der Firma zu Objekt A mitfährt bekommt er für dieses Objekt bereits die Fahrzeit als Arbeitszeit (aber gekennzeichnet) in die tblObjMitarbeiter eingertagen.
Arbeitet er dort dann weitere 5 Stunden dann ist diese Zeit als Arbeitszeit für Objekt A einzutragen.
Fragst du dann die Zeiten von Objekt A ab erhältst du z.B. 25 Minuten als Fahrzeit und 5 Stunden als Arbeitszeit für MA Max als Ergebnis der Abfrage angezeigt.
zu 3:
Fragst du die gleiche Tabelle ab und schließt jene Datensätze aus, die als Fahrzeit gekennzeichnet sind hast du die reine Arbeitszeit.
zu 4:
Abfrage der tblObjMitarbeiter mit Einschränkung auf das Feld ObjM_Datum sollte das Problem lösen
zu 5:
Es müsste ja eigentlich bei Projektstart bereits bekannt sein welche Verrechnungsart für das betreffende Objekt zur Anwendung kommen muss (Pauschale, Stundensatz x, etc.)
Da würde es sich anbieten diese Informationen in eigenen Feldern der tblObjekte zu hinterlegen dann kann bei einer Abfrage auch darauf zugegriffen werden.
ZitatDie Endzeit von der Fahrt also Endzeit von der Hinfahrt würde ja den Anfangszeitpunkt des Objektes ...
Ja, ich weiß worauf du hinaus willst - das ist auch generell realisierbar - die Übergabe der Fahrzeiten ist ja auch gelungen ;-)
M.E. wirst du aber NIE ganz darum herum kommen irgendwelche Daten mehrfach einzugeben, da sich nicht alles automatisiert erledigen lassen wird
Zur neuen Version deine DB:
Ich halte es nicht für klug, Hin- und Rückfahrten in getrennten Tabellen zu halten - da sind wir dann bei der Redundanz, die es eigentlich zu vermeiden gäbe.
Wenn du Hin- und Rückfahrten deutlich gekennzeichnet brauchst, dann stell ein Flag- Feld in die Tabelle Fahrtenbuch (H / R)
p.s. Nachtrag:
Ich würde das Fahrtenbuch rein als solches führen und keine Mitfahrerer im Zuge der Fahrtenbucheinträge im gleichen Formular
erfassen - die haben ja auch praktisch gesehen mit einem
Fahrtenbuch nichts zu tun.
Das ist aber reine Geschmacksache bzw. Gewohnheitssache - wichtig ist halt die Trennung der beiden Dinge voneinander
Hallo Peter,
vielen Dank für Deine Erklärung! Hab die DB nun soweit abgeändert und verstehe auch das Prinzip dahinter.
Ich komme aber leider nicht selbst auf wie ich mittels MsgBox die Zeiten von Max übernehmen kann wie Du es beschrieben hast :(
Könntest Du mir hier noch etwas helfen bitte?
Die anderen Punkte bin ich noch beim abarbeiten werde aber glaub ich auch noch etwas Hilfe benötigen :(
Vielen lieben Dank aber erstmals !!!
Albert
Hallo Albert,
eine Möglichkeit wäre folgende - Code hinter dem Übergabe-Button im Formular frmkfz:
Private Sub cmdUebertrag_Click()
Dim rst As Recordset
Dim strSQL As String
Dim strMitarbeiter As String
'Alle Einträge des Mitfahrer-Unterformulars auslesen
Set rst = Me.tblMitFZ_Unterformular.Form.Recordset
rst.MoveFirst
Do While Not rst.EOF
'Datenübergabe nur für MITfahrer ohne Datenübertrag
If Me.tblMitFZ_Unterformular!MitFZ_Fahrer = 0 And Me.tblMitFZ_Unterformular!Datenuebertrag = 0 Then
'Mitarbeiternamen auslesen
strMitarbeiter = Me.tblMitFZ_Unterformular!cboMitarbeiter.Column(1)
If MsgBox("Die Fahrzeit von " & strMitarbeiter & " für dieses Objekt übertragen?", vbExclamation + vbYesNo + vbDefaultButton2, "Fahrzeit übertragen") = vbYes Then
'Anfügeabfrage erstellen
strSQL = "INSERT INTO tblObjMitarbeiter (ObjM_Obj_Id,ObjM_Mit_Id,ObjM_Datum,ObjM_Anfang,ObjM_Ende,ObjM_Fahrtzeit)" & _
"VALUES(" & Me.tblFahrtenbuch_Unterformular!FB_Obj_Id & "," & _
Me.tblMitFZ_Unterformular!cboMitarbeiter & "," & _
Format(Me.tblFahrtenbuch_Unterformular!FB_Datum, "\#yyyy\-mm\-dd\#") & "," & _
Format(Me.tblFahrtenbuch_Unterformular!FB_Anfang, "\#hh\:nn\#") & "," & _
Format(Me.tblFahrtenbuch_Unterformular!FB_Ende, "\#hh\:nn\#") & ",-1)"
'Den Dateneintrag veranlassen
CurrentDb.Execute strSQL, dbFailOnError
'Den Datenübertrag kennzeichnen
Me.tblMitFZ_Unterformular!Datenuebertrag = -1
End If
End If
rst.MoveNext
Loop
Set rst = Nothing
End Sub
Wie weit diese Möglichkeit nun tatsächlich deine Vorstellungen abdecket kann ich nicht beurteilen - das findest du am Besten durch probieren heraus.
Erweiterungen / Änderungen kann man immer in verschiedenen Formen finden ::)
ZitatDie anderen Punkte bin ich noch beim abarbeiten werde aber glaub ich auch noch etwas Hilfe benötigen
Gerne!
HTH
Hallo Peter,
na sehr herzlichen Dank für Deine mail! Hat wie immer super funktioniert!
Ganz einfach gel wenn man es kann ;)
Sehr schöne Grüße
Albert
Hallo Peter,
hab grad gesehen das Du auch online bist :)
SChön zu sehen gg
Ich habe nun das nächste kleine Problem in meiner Abfrage.
Habe eine tblFahrtkosten erstellt die mit der tblObjekt verknüpft ist.
Diese tabelle enthält nur die ID und FK_Name
Wie kann ich denn nun einen 'Wert auf meine Abfrage erstellen.
Also in der Tabelle habe ich z.B. Keine Fahrtkosten, Alle Fahrtkosten, Pauschale, Fahrer...
Nun muss meine Abfrage je nachdem welche Auswahl ich getroffen habe diese Fahrtkosten berrechnen :(
Kannst Du mir sagen ob ich hier noch richtig unterwegs bin???
Bekomme es leider in meiner Abfrage nicht hin :(
Lg
Albert
ach und danke natürlich für Deine Hilfe!!!!!!!!!!
Sorry Albert, aber da kann ich dir nicht ganz folgen :-\
Kannst du das ein wenig genauer und detaillierter schildern und dazu die DB mit den Neuerungen anhängen
ich schau mir das morgen Vormittag gerne mal an..
Hallo Peter,
danke nochmals für Deine Hilfe!!! So jetzt hab ich etwas mehr Zeit um es genauer zu formulieren.
In dieser DB im Anhang habe ich eine neue tblFahrtkosten erstellt. Diese ist mit der tblObjekte verknüpft.
Folgende DS sind in dieser nun vorhanden. Alle FK "FK-Fahrtkosten", Keine FK, Pauschale (die aber wiederum in Euro ist und auch evt. Unterschiedlich sein kann!)
und KM Geld ( hier sollte die Fahrt je nach Kilometer Aufwand mit einem KM Geld von 0,42 Euro verrechnet werden)
Nun war meine Frage wie ich diese Daten in einer Abfrage integrieren kann damit ich je nach Objekt auwerten kann was nun tatsächlich für die Fahrt und den Objekt
verrechnet werden soll.
In der tblFahrtkosten habe ich im moment nur die FK_ID und FK_Name denn sonst würde ja wieder Äpfel mit Birnen vorhanden sein :(
In meiner Bestehenden Abfrage steuere ich ja die Abfrage mit meinem Formular also Datum von Datum bis, und Objekt und den Objekt Std. Satz., und zeigt mir die Daten an
als Kontrollkästchen ob es sich um eine Fahrtzeit handelt oder Objekt Zeit.
Nun wie bekomme ich nun in Euro und Cent die Fahrtzeit und die Objekt zeit aus dieser Abfrage.
Hoffe Du kannst mir folgen ??
Schöne Grüße und vielen Dank
Albert
P:S. Die neue SQL Anweisung hab ich in dieser DB noch nicht upgedatet!
[Anhang gelöscht durch Administrator]
Hallo Albert, ein paar Fragen
Wenn es so sein soll, dass z.B. Pauschalen differieren, müssen diese Informationen in einer Zwischentabelle zwischen Objekt und Fahrtkosten hinterlegt werden.
Gleiches gilt für das amtl. Kilometergeld, das sich im Lauf der Zeit ja auch ändern kann.
Im Prinzip müsstest du eine Historie der Beträge führen, die pro Startdatum eines Objeks zugewiesen werden, da du ja nicht auftragsbezogen sondern objektbezogen arbeitest.
Ich gehe dabei natürlich davon aus, dass du an einem Objekt ev. mehrere Aufträge in zeitlichem Abstand auszuführen hast
und so kann es durchaus sein, dass sich zwischen dem ersten und dem letzten Auftrag ein Unterschied in einer ev. Fahrtenpauschale ergibt
bzw. bei ersten Auftrag eine Pauschale verrechnet wird und beim letzten keine Fahrtkosten anfallen.
Diese Zwischentabelle solle das Objekt, dessen Startdatum, die FK-Art und den aktuellen Wert derselben anzeigen können.
Diese Tabelle kann man dann in deine Abfrage integrieren und die entsprechend angefallenen Stunden mit den Sätzen einer Berechnung zuführen.
Allerdings nur in Verbindung mit dem Fahrtenbuch - Mitfahrer erhalten ja in der Regel kein km-Geld wodurch eine Verbindung mit tblObjMitarbeiter
zur Berechnung von Fahrtkosten nicht zielführend ist. Die reinen Fahrtzeiten eines MA ergeben sich durch die Kennzeichnung und sind per Abfrage leicht zu ermitteln.
Wird in deinem Geschäftsmodell bei Mitarbeitern zwischen Arbeitszeit und Fahrzeit stundsatzbezogen unterschieden?
Was ist mit 'Fahrer FK' und 'Alle FK' in der tblFahrtkosten gemeint?
Wo und wie erfaßt du denn die €-Werte für die Einträge in der tblFahrtkosten - hast du da schon eine Überlegung dazu?
Kannst du mir mal die obenstehenden Fragen beantworten - vielleicht mit einem oder zwei unterschiedlichen beispielhaften Beschreibungen.
Hallo Peter,
danke erstmal für Deine Zeit und Mühe!!
Zu Deinen Fragen.
Es kann sein das die Fahrtzeit für jeden MA berechnet wird aber mit einem anderer Stundensatz wie am Objekt.
Fahrer FK heist das die Fahrtzeit nur für den Fahrer berechnet werden soll manchmal der gleiche Stundensatz wie am Objekt manchmal billiger oder ein anderer StdSatz
Alle FK soll heissen alle Fahrtkosten werden verrechnet. Also für jeden MA wird ein Stundensatz verrechnet auch die Fahrt. Muss aber auch wieder nicht heissen das
es der gleiche also der vom Objekt sein muss.
Die Euro werte hab ich noch nicht für die Fahrtkosten also zumindest nicht als solche hinterlegt.
Und weis nicht genau wo diese stehen sollen das man eine vernünftige Abrechnung erzielen kann.
Hab etwas Zeitdruck um es ausführlicher zu beschreiben aber vielleicht kannst Du es ja so schon etwas besser verstehen.
Muss leider nochmals los zur Arbeit würde aber später nochmals schaun ob Du noch Fragen hast :)
Ich weis auch noch nicht genau wie Du es mit der Zwischentabelle meinst :(
Vielen Dank erstmal
Albert
Hallo Albert,
hat ein wenig gedauert ...
Im Anhang die DB mit folgender Ergänzung:
Ich habe 2 Abfragen erstellt, 'qryFahrtkosten' - ermittelt die Fahrtkosten bezogen auf Mitarbeiter-Fahrtzeit und Objekt
sowie 'qryObjektkosten' - ermittelt die Kosten der reinen Arbeitszeit eines Mitarbeiters an einem Objekt.
Beides natürlich eingeschränkt auf einen bestimmten Zeitraum.
Beide Abfragen enthalten ein 'Dummy-Feld' - Art - um die Kostenart zu Kennzeichnen - 'O' = Arbeitszeit am Objekt, 'F' = Fahrzeiten der Mitarbeiter.
Das Formular 'frmObjStunden' habe ich mit einem Button ausgestattet um die Abfrage der Gesamtabrechnung zu öffnen.
In diesem Formular ist das Objekt auszuwählen sowie der gewünschte Zeitraum anzugeben - klick auf 'Abrechnung' öffnet dann die 3. neue Abfrage 'qryGesamtkosten',
eine UNION-Abfrage, welche die Aufstellung der entstandenen Kosten aus den obigen Abfragen darstellt.
Wenn nun auch das Fahrtenbuch in diese Abfrage inkludiert werden soll, kannst du das analog der von mir erstellten beiden Abfragen nachbauen,
einschließlich eines Dummy-Feldes 'Art' mit Inhalt 'FB' um die Kostenart 'Fahrtenbuch' zu kennzeichnen.
Wichtig dabei ist, dass die Abfrage die gleiche Anzahl von Feldern in der gleichen Reihenfolge besitzt.
Anzufügen wäre sie dann nach einer weiteren UNION-Anweisung ausschließlich in der SQL-Ansicht der 'qryGesamtkosten'.
Bitte beachte, dass der Aufruf aus dem Formular 'frmObjStunden' nur beispielhaft zu sehen ist.
Solltest du den Aufrug der Abrechnung auf ein anderes Formular verlegen wollen, musst du in den einzelnen Abfrageentwürfen die Kriterienpfade anpassen.
Die Abfrage 'qryGesamtkosten' kannst du natürlich auch als Datenherkunft für einen, nach dem Abfragefeld 'Art', gruppierten Bericht verwenden.
Hoffe, die vorgeschlagene Lösung hilft dir weiter ;)
[Anhang gelöscht durch Administrator]
Guten Morgen Peter,
erstens muss ich mich sehr bei Dir entschuldigen das ich erst jetzt die Zeit gefunden habe mir Deine Nachricht und Deinen Vorschlag anzusehen!
Ich war bis jetzt mit einer anderen DB beschäftigt :(
Hoffe Du bist mir deshalb nicht böse!?
Ich schau es mir grad an und bin mir sicher das es nun schon bald funktionieren wird sieht gut aus!!
Vielen Dank
werde Dich auf den laufenden halten wie es mir dabei ergeht :)
Glg
Albert
Hallo Peter,
ich hab nun die DB angesehen aber jetzt hab ich da doch noch einige Fragen :(
Der tblMitFZ ist nicht verknüpft....braucht diese nicht verknüpft mit einer anderen tabelle sein?
In tblObjektFahrtkosten ist dien FKID_F auch nicht verknüpft...braucht es das auch nicht??
In tblObjekte ist auch ein Obj_FK_Id auch noch keine..
Bin mir nicht mehr ganz sicher was verknüpft sein muss und was nicht.
Würde mich sehr freun wenn Du mir diesbezüglich noch mal Antworten könntest und Dir vielleicht die DB nochmals anschaun kannst.
Mfg
Albert
Hallo Albert,
nein, ich bin nicht böse!
Du bewegst dich im Forum, wenn du dazu Zeit findest - wie ich, ich habe leider auch nicht immer Zeit mich sofort um eine Antwort zu kümmern.
Die Tätigkeiten zur Vermehrung unserer Währung verlangen das halt so ;) :D
Ich habe mir die DB aus dem letzten Beitrag angeschaut.
K.A. warum die tblMitFZ da einen 'Freiflug' gemacht hat, ich hab das behoben.
Zur Vollständigkeit habe ich noch die tblMitarbeiter mit der tblMitFZ in Beziehung gesetzt.
In der tblObjektFahrtkosten passt alles, da hat nix gefehlt.
In der tblObjekte war der Fremdschlüssel Obj_FK_Id noch als Überbleibsel vorhanden, habe ich rausgenommen.
Weiter habe ich die tblAnrede mit den entsprechenden Tabellen in Beziehung gesetzt und dabei
die fehlerhafte Beziehung zwischen tblObjekte und tblKontakte berichtigt.
Was mir allerdings nicht klar ist - die beiden Felder Kon_KunT_Id und Kon_KonT_Id in der tbl Kontakte ???
Im Anhang findest du jedenfalls die berichtigte Version.
LG
[Anhang gelöscht durch Administrator]
Hallo Peter,
danke für Deine Mühe hab mich auch schon damit beschäftigt und auch dieselben Änderungen gemacht :)
Muss jetzt erst mal wieder in dieser DB zurecht kommen :(
Wie funktioniert das wieder mit den Daten übertragen?
Hab nun Daten in meinem Fahrtenbuch eingetragen aber bin mir nicht mehr sicher wie die Datenübertragung funktioniert?
Auch würde ich gerne ein Formular mit den DS aus einen HF in einem neuen Formular öffnen.
Habe es nun mit Macro gemacht aber würde doch lieber VBA nehmen bekomme es aber leider noch nicht hin :(
Schöne Grüße
Albert
Hallo Albert,
ZitatHab nun Daten in meinem Fahrtenbuch eingetragen aber bin mir nicht mehr sicher wie die Datenübertragung funktioniert?
Ich gestehe, ich steh im Moment etwas daneben - welche Datenübertragung meinst du da konkret?
ZitatHabe es nun mit Macro gemacht aber würde doch lieber VBA nehmen
Du könntest das Makro zu VBA konvertieren lassen, dann hast du den Code, der dahintersteht.
Ich habe dir dazu auch in deiner anderen Frage geantwortet.
Hallo Peter,
danke nochmals für Deine Antwort!
Na ja in der Datenbank 4 da haben wir bzw. Du mir ja die Datenübertragung vom Fahrtenbuch auf die Objekte erstellt.
Nun bin ich mir aber nicht mehr ganz sicher wie das funktioniert.
Im Formular frmFahrtenbuch sind ja buttons mit Übertrag und in der Tabelle MitarbeiterFahrtzeit auch.
Nur irgendwie funktioniert das nicht mehr so ganz :(
Hab nun wie schon gesagt daten in das Fahrtenbuch eingegeben. Mit Mitarbeitern die gefahren sind und oder mit in dem Auto gefahren sind.
Nun sollen diese Daten in das ObjMitarbeiter eingetragen werden.
Obwohl wir ich auch noch dazu sagen soll das die Fahrtzeiten Pauschale....Fahrtkosten/km manchmal auch objekt bezogen sind.
Das bedeutet das auch manche Objekte erst am Monats ende abgerechnet werden und alle Fahrtzeiten als Arbeitszeiten verrechnet werden sollen.
Hoffe Du weist noch bescheid :)
Grüße
Albert
Hallo Albert,
Jaaaa .... das ist nicht das Formular Fahrtenbuch sondern das Form frmKfz!
Ok, ich habe das eben mal durchgespielt - bei mir geht es in der db4
Die Daten werden in die tblObjMitarbeiter übertragen und im Unterformular wird das Häkchen für den Übertrag gesetzt.
Unten habe ich einen Ausschnitt angehängt, in dem du das sehen kannst ...
Oberhalb des Formulars siehst du den letzten Eintrag in der Tabelle (markiert)
???
[Anhang gelöscht durch Administrator]
Hallo Peter,
danke für Deine post!
Ja das stimmt schon das es das frmKfz gewesen ist hab es nur umbenannt und nicht mehr geschaut tut mir leid!
Nun hab ich doch noch einige Fragen :(
War es denn nicht möglich das auch die in der tabelle MNitarbeiterFahrzeit auch wenn der MitFZ_Fahrer selectiert wird diese in die tblObjMitarbeiter eingetragen werden
wenn ich den Mitarbeiter als Fahrer festlege und dann auf Datenübertrag klicke??
Im Moment funktioniert es ja nur bei mir!? Wenn ich zusätzlich einen Mitarbeiter anführe und dann auf Datenübertrag klicke.
2. Möchte ich auch in der Lage sein das ich die Monatsgesamt Stunden der Mitarbeiter erfassen kann und wo in welchen Ort sie wie lange gearbeitet haben.
Es geht dabei um die Lohnabrechnung die extern erledigt wird aber gewissen Fahrtspesen den Mitarbeitern zustehen!
Ich würde gern eine Liste meinen Lohnbüro übergeben die die Mitarbeiter nach datum auswählt und die Orte andenen sie an den Tagen gearbeitet haben aufzeichnet.
Die Mitarbeiter haben aber auch arbeiten in unseren Büro oder Lager die meine Mitarbeiter natürlich auch gern bezahlt bekommen ;)
Also sollten meine Mitarbeiter in der Lage sein Ihre Stunden für jeden Tag in deren Computer einzugeben und am Monatsende würde ich diese meinen Lohnbüro übergeben.
Nachdem ich diese Kontrolliert habe.
Vielleicht hast ja noch ein bisschen zeit um mir unter die Arme zu greifen?
Wäre Dir wirklich dankbar!!
Mfg
Albert
Hallo Albert,
ich habe mir eben deine Fragen durchgelesen...
ZitatWar es denn nicht möglich das auch die in der tabelle ...
Nein, eigentlich nicht, die Codezeilen des Übertrags haben sich von Anfang an nicht geändert.
Zitat2. Möchte ich auch in der Lage sein das ich die Monatsgesamt Stunden der Mitarbeiter erfassen kann ...
Nicht erfassen - abfragen! Sollte eigenlich machbar sein.
ZitatAlso sollten meine Mitarbeiter in der Lage sein Ihre Stunden für jeden Tag in deren Computer einzugeben ...
Da dieses nun weder Fahrzeiten noch Objektstunden sind, mußt du eine Möglichkeit schaffen, diese Zeiten zu erfassen.
Die Auswertung erfolgt dann analog der 2. Frage
Ich muß jetzt gleich weg, schau mir aber gerne am Nachmittag dann die Sache nochmal genauer an.
LG
Hallo Peter,
vielen Dank alles klar!
Schöne Grüße
Albert
Servus Albert,
ich habe in die DB eine neue Tabelle eingefügt 'tblRegiestunden'
In dieser Tabelle werden alle Arbeiten der MA eingetragen die nicht zu einem Objekt zu zählen sind.
Für die Erfassung steht ein kleines Formular zur Verfügung 'frmRegiestunden'
Weiter habe ich dir eine Abfrage (qryMitarbeiterZeiten) gebastelt, welche die Zeiten der Mitarbeiter zusammenfaßt.
Beim Aufruf wird nach dem Objektmonat und dem Regiemonat gefragt.
Die beiden Eingaben müssen natürlich gleich sein, sonst bringt das Ganze ja nix.
Die Abfrage könnte nun als Datenherkunft für einen Bericht dienen, der dann die Daten des abgefragten Monats anzeigt.
Sieh diese Abfrage daher nur mal als Diskussionsgrundlage an.
Ev. Erweiterungen / Änderungen können ja nachgefaßt werden.
Die geänderte Datei (Datenbank5) befindet sich im Anhang.
Schau dir die Dinge mal einfach in aller Ruhe an - vielleicht deckt sich das mit deiner Vorstellung ;)
LG
[Anhang gelöscht durch Administrator]
Servus Peter,
hab grad gesehen das Du online bist oder nicht mehr :(
Recht herzlichen Dank!!
Sag mal Peter ist es eigentlich falsch wenn ich die tblObjektFahrtkosten mit einen PK versehen habe?
Warum war denn dort keiner?
Ich schau mir Deine geänderte DB gleich mal an :)
Nochmals Danke
Albert
Hallo Albert,
Zitatist es eigentlich falsch wenn ich die tblObjektFahrtkosten mit einen PK versehen habe?
Nein, ist es nicht.
Prinzipiell gibt es immer wieder den Hinweis JEDE Tabelle mit einem PK auszustatten.
In dem Fall handelt es sich um eine Zwischentabelle um die m:n Beziehung zwischen tblObjekte und tblFahrtkosten aufzulösen.
Die Verwendung eines PK ist hierfür nicht zwingend notwendig, m.E. wäre es besser die Felder ObjID_F und FKID_F zu indizieren.
Also einen NICHT-eindeutigen Index für die beiden Felder zu erstellen und keinen PK.
Warum einen Index? Indizes beschleunigen die Suche und nachdem in der Tabelle
häufig nach diesen beiden Feldern selektiert wird bietet sich ein Index an.
Warum keinen PK über die beiden Felder? Das sonst die Kombination der beiden FK
eindutig wird und das ist wiederum in dieser Tabelle nicht erwünscht.
Wenn du nun einen AutoWert hinzugefügt hast, ist das zwar OK, wird aber am Verhalten der Tabelle nichts verändern.
Servus Peter,
na dann werd ich den mal wieder weg machen gg:)
Danke nochmal!!
Schönen Sonntag wünsch ich Dir!
Lg
Albert
Hallo Albert,
nachdem die aktuellen Fragen eigentlich zum Anfangsthema schon OT sind, bitte den Thread abschließen.
Weitere Fragen dann bitte wieder mit einem neuen Titel einstellen.
DANKE
und auch dir einen schönen Sonntag
Servus Peter,
ok mach ich!
Danke
Albert