Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Berechnete Felder aus Formular in Tabelle speichern

Begonnen von Nordlicht33, Januar 26, 2013, 12:27:40

⏪ vorheriges - nächstes ⏩

MzKlMu

#15
Hallo,
morgen baue ich Dir was zusammen. Wie kommen die Inhalte der Felder "Total_Airtime_dez" und "TotalLdg" zu stande?

Die Personen gehören in eine Tabelle, mit einem Kennzeichen ob Schüler, Pilot oder Lehrer.
Gruß Klaus

Nordlicht33

für "Total_Airtime_dez" und "TotalLdg" habe ich mit dem Eingabeformular eine VBA-Lösung, die mit der .default eigenschaft arbeitet. Das habe ich schon ausprobiert und geht.

Jep, in die Tablee tbl Fluege gehen sowohl Schüler, Piloten und Lehre ein. Das sind unterschiedliche Werte von Datenfeldern dieser Tabelle.

Gute Nacht noch

Bernd

MzKlMu

#17
Hallo,
die Frage war mehr, was diese beiden Felder ("Total_Airtime_dez" und "TotalLdg") für Inhalte haben. Ein Flug hat eine Landung und ein Start. Da machen doch Gesamtfelder keinen Sinn.
Mit einer Tabelle meinte ich, eine Tabelle für alle Personen und nicht getrennt. Je nach Person bleiben dann halt Felder leer.
Wenn ein Flugschüler zum Piloten wird, müsstest Du ja die Namen umkopieren, das wäre nicht gut.
Die berechneten Felder "Kontaktperson" und "Speichern Unter" gehören in eine Abfrage und nicht in die Tabelle.

Wie unterscheidest Du Schulungsflüge von Vergnügungsflügen?
Und eine Lehrer der einen Vergnügungsflug macht wird ja zum Piloten.
Gruß Klaus

Nordlicht33

Hallo,

Zu "Total_Airtime_dez" und "TotalLdg":
Jedes Flugzeug braucht Wartung und da muss immer die Gesamtflugzeit bzw. die Anzahl der Landungen angegeben werden. Das ist sozusagen der Kilometerstand beim Auto, die hier als laufende Summe mitgehalten werden sollte.

Tabelle für alle Personen: Ja. Denn es sind alles Mitglieder. Irgendwann werden aus Flugschülern Piloten; aber das ist nur eine Merkmalsänderung, damit können sie in der Tabelle bleiben. leergebliebene Felder ist für uns OK.

Die berechneten Felder "Kontaktperson" und "Speichern Unter" habe ich mir aus den mitgelieferten Beispieldatenbanken zu Access abgeschaut. Dachte "Wenn Microsoft das macht.... Aber OK, verstanden!

Schulungsflüge werden über das Feld "Flart" identifiziert. Die Merkmalsausprägungen für "Flart"  stehen in "tblFlart". Damit lassen sich dann ganz unterschiedliche Flüge kennzeichnen und Schulflüge von Vergnügungsflügen unterscheiden.

Für weitere Nachfragen: Ich bin auf standby.

Bernd


MzKlMu

Hallo,
ZitatJedes Flugzeug braucht Wartung und da muss immer die Gesamtflugzeit bzw. die Anzahl der Landungen angegeben werden.
Das hat doch aber mit dem Flug selbst nichts zu tun.
Du benötigst eine Tabelle für die Flugzeuge. Und in der Tabelle für die Flüge muss es einen Verweis (Fremdschlüssel) für das zum Flug verwendete Flugzeug geben.
Gibt es ein Feld in der Tabelle "Fluege" das auf das Flugzeug verweist? Wenn ja welches? Ist eine Tabelle für die Flugzeuge vorgesehen, oder habt ihr nur eines?
Aber auch das muss ja mal ersetzt werden.

Erkläre mal noch die bisher nicht besprochenen Felder der Flugtabelle.
Gruß Klaus

Nordlicht33

Hi,
ZitatDas hat doch aber mit dem Flug selbst nichts zu tun.

Nach meinem Verständis schon: Der Gesetzgeber verlangt von uns, dass wir nach jedem Flug die aktuelle Gesamtflugzeit sowie die Landungen des Flugzeuges eintragen. Es gehört also zum Flug und jeder Pilot trägt bisher nach jedem Flug diese Angaben händisch ins Flugbuch ein. Sonst geht uns der "Kilometerstand" verloren.

Du hast recht, dass wir eine Tabelle für Flugzeuge brauchen. Der Fremdschlüssel in "tblFluege" wäre "Typ" - also das Kennzeichen des Flugzeuges. Müßte man wohl umändern in ein numerisches Feld und das Kennzeichen in die Flugzeugtabelle tun.

Die restlichen Felder von "tblFlluege":

ID1: Primäschlüssel der Tabelle
Logz: laufende Nummer des Fluges
Flugdatum: evident
Typ: siehe oben
FI: Fluglehrer -> "tblFIDaten"
SP: Pilot ->"tblSPDaten"
Dep: Code Startplatz
Dest: Code Landeplatz -> "tblAirfileds" (Ich wollte das so machen, dass ich nur den Landeplatz referenziere und dann im Eingabeformular, den letzten Landeplatz zum Startplatz mache; muss ja - es sei denn das Flugzeug ist kaputt und muss in Teilen am Boden transportiert werden. Ist das eine brauchbare Idee?)
tOFF/iON/Btime/tTO/tLDG/Airtime  - habe ich schon erklärt (sind die Zeiten)
ldgen: # Landungen je Flug
Sortie: siehe oben
Total_airtime_dez: siehe oben (Soll in dezimaler Form berechnet werden: einfacher für Berechnungen)
TotalLdg: sieh oben
Flugart: siehe oben




MzKlMu

Hallo,
Zitatdass wir nach jedem Flug die aktuelle Gesamtflugzeit sowie die Landungen des Flugzeuges
Eben, des Flugzeugs und nicht des Fluges. Beide Felder sind ersatzlos überflüssig.
Beide Werte lassen sich problemlos über eine gruppierte Abfrage aus der Tabelle Flüge errechnen. Die Landungen ist einfach die Summe der Anzahl Landungen je Flug eines Flugzeugs und die Gesamtzeit die Summe der Dauern je Flugzeug. Stets aktuell.
Welche Dauer wird denn für die Gesamtzeit verwendet?
Zeiten sind übrigens im Hintergrund immer dezimal und können einfach addiert werden, auch im Format hh:nn (nn für Minuten ist richtig mm ist der Monat).             
Da die Gesamtzeit >24h wird ist die Formtierung im Zeitformat aufwendiger. Das hat aber mit dem addieren nichts zu tun. Eine dezimale Zeit ist daher meist überflüssig.

Was ist eigentlich wenn Ihr Passagiere habt?
Die müssen doch bestimmt auch mit Namen komplett erfasst werden oder?

PS:
Das Forum ist nervig langsam, bei Dir auch?
Gruß Klaus

Nordlicht33

Ja ist bei mir auch nervig langsam. Ich schick die mal meine email Adresse, wenn du magst.

Zu der Gesamtflugzeit: So einfach ist das leider nicht! Die Gesamtflugzeit hat eine eigene Bedeutung in der Doku der Fliegerei. Wenn sich z.B bei einer Überprüfung herausstellt, dass  ein Pilot die Zeiten falsch eingetragen hat, dann ändert man die Zeiten des Piloten, nicht aber die eingetragene Gesamtflugzeit. Das ist z.B. für zeitabhängige Kontrollen wichtig. Wenn sich einer also um 10h verrechnet, dann gilt das "falsche" Datum auch für die Berechnung des nachfolgend fälligen Intervalls. Spätestens wenn der nächste Flug angetreten wird, liegt die Gesamtflugzeit für Wartungsarbeiten fest. Da nützt mir eine nachträgliche Berechnung über eine gruppierte Anfrage nichts, weil dann die Zeiten immer weiter auseinanderlaufen. Insofern ist es schon wichtig, die Gesamtflug zum eintragungszeitpunkt festzustellen, auch wenn das datenbanktheoretisch eine schlechte Lösung ist.

Das mit der Zeitformatierung nehme ich mit. Danke, was gelernt!

Die Passagiere müssen und sollen nicht erfasst werden. Da habe ich ein Memofeld oder ein Textfeld vor, in dem man fallweise solche Notizen hinterlegen kann. Die werden aber nicht ausgewertet. Insofern besteht da kein zusätzlicher Referenzbedarf.

MzKlMu

Hallo,
dann gehört doch die Gesamtzeit zum Flugzeug, das wird doch überwacht und nicht der Flug. Der Flug wird ja nicht gewartet, sondern das Flugzeug.
Aber die Landungen lassen sich in jedem Fall berechnen.

Und das Flugbuch (Fluege) ist ja kontinuierlich. Das heist, es kann der nächste Flug eingetragen werden (mit einem anderen Flugzeug) wenn der vorherige Flug noch nicht beendet ist. Daher kannst Du nicht einfach den Zielfluplatz des vorherigen Datensatzes als Startplatz nehmen. So verstehe ich das jedenfalls.
Gruß Klaus