Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Frage zur Tabelle und Daten Kopie

Begonnen von silentwolf, Januar 09, 2013, 14:12:09

⏪ vorheriges - nächstes ⏩

silentwolf

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

69bruno

#1
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.

If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

silentwolf

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




69bruno

#3
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.....
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

silentwolf

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]

69bruno

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 ?
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

database

#6
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?

silentwolf

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







silentwolf

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

database

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!




 

silentwolf

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

database

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]

silentwolf

Hallo Peter,

vielen Dank für die DB ich werde sie mir gleich anschauen und Dir bescheid geben :)

Danke

Albert

silentwolf

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.

silentwolf

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]