Neuigkeiten:

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

Mobiles Hauptmenü

Formular erstellen mit Werten aus unterschiedlichen Tabellen

Begonnen von Kutsche, März 17, 2024, 20:13:37

⏪ vorheriges - nächstes ⏩

MzKlMu

Hi ekkehard
habe das kein gelöscht bzw. durchgestrichen. Man kann einen Beitrag vor dem Senden noch so oft kontrollieren, im Nachhinein stellt man doch Fehler fest.
Gruß Klaus

Beaker s.a.

Hallo Klaus.
ZitatMan kann einen Beitrag vor dem Senden noch so oft kontrollieren, im Nachhinein stellt man doch Fehler fest.
Erzähl' mir nichts, das kenne ich nur zu gut. Jahrelang Kataloge herausgebracht,
Tage- wenn nicht Wochenlang Korrektur gelesen. Dann schlägst du das erste Exemplar,
das aus der Druckerei kommt auf und das erste was du siehst ist ein Tippfehler.
Vor über 30 Jahren war das noch nicht so weit her mit autom. Korrekturen.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Kutsche

Hallo Klaus,

kannst du mir kurz erklären, wie ich bei einer Abfrage Berechnungen einbaue?

Habe dir meine aktuelle Version mit deinen Anpassungen beigefügt.

Mit der Abfrage abf_Abrechnung möchte ich, wenn alle funktioniert, den Inhalt der Tabelle _tbl_Fuellungen in die Tabelle tbl_Abrechnung verschieben. Dabei soll in der Tabelle  tbl_Abrechnung das Feld Preis wie folgt gefüllt werden:
Ist der Tabelle tbl_Besitzer das Feld Intern = intern, da soll der Preis mit der Bemerkung intern verwendet werden. Dabei muss noch der Zeitraum abgeglichen werden, d. H. wenn mehrere unterschiedliche Zeiträume mit Preisen hinterlegt sind, muss noch ein Abgleich auf das Datum der Füllung erfolgen. Das gleiche wenn das Feld Intern = extern ist.

Ich scheitere aber schon an der ersten Bedingung.

In meinen alten Unterlagen ist auch noch ein Bild, wo in der Entwurfsansicht noch ein Feld "Funktion" angezeigt ist. Das fehlt mir hier allerdings. Auch finde ich nicht mehr, wo man ein gut lesbares Fenster für das Schreiben der Funktion aufmachen kann.

LG Jens

MzKlMu

#18
Hallo,
ZitatMit der Abfrage abf_Abrechnung möchte ich, wenn alle funktioniert, den Inhalt der Tabelle _tbl_Fuellungen in die Tabelle tbl_Abrechnung verschieben.
Da wird nix verschoben, in die Tablle für die Abrechnung wird nur die IDFuellung übertragen bzw. per Kombi gewählt. Die Beziehung über die Preistabelle und Abrechnung ist nicht notwendig. Das Feld IDPreis_F kann gelöscht werden.

Wie errechnet sich überhaupt der Gesamtpreis, der angegebene Preis, ist das pro Liter ?
Soll das der Rechnungsbetrag werden? Wenn ja, ist das Feld überflüssig. Der Rechnungsbetrag wird nur errechnet, aber nicht gespeichert.
Was ist mit der Mwst ?
Was hat es mit dem Feld IDKosten auf sich ?
Der Preis ist auch ein Währungsfeld, nicht Longinteger.
Das Ja/Nein Feld Abgerechnet ist überflüssig, Du hast ja das Feld AbgerechnetAm, das reicht. Steht da ein Datum drin ist abgerechnet.

Warum hast Du in der DB keine Beziehungen angelegt ?

Bitte mal alles genau beantworten.
Gruß Klaus

Kutsche

#19
Hallo Klaus,

hier meine Antworten:
ZitatDa wird nix verschoben, in die Tabelle für die Abrechnung wird nur die IDFuellung übertragen bzw. per Kombi gewählt.
->    Das Verschieben soll auch erst später erfolgen, wenn alles fertig ist. Oder muss ich dies gleich mit einbauen?

ZitatDie Beziehung über die Preistabelle und Abrechnung ist nicht notwendig. Das Feld IDPreis_F kann gelöscht werden.
->    Warum ist die Beziehung nicht notwendig? Woher weiß die Abfrage dann, was die Re-ferenz ist?

ZitatWie errechnet sich überhaupt der Gesamtpreis, der angegebene Preis, ist das pro Liter ?
->    Ja, der Gesamtpreis ist Preis * Liter. Es soll aber später in der Dokumentation auch der ,,Grundpreis pro Liter" stehen.

ZitatSoll das der Rechnungsbetrag werden? Wenn ja, ist das Feld überflüssig. Der Rechnungsbe-trag wird nur errechnet, aber nicht gespeichert.
->    Ja, das soll der Rechnungsbetrag werden. Kann man den zu Dokuzwecken nicht auch in der Tabelle speichern?
ZitatWas ist mit der Mwst ?
->    Ist nicht notwendig, da es sich um einen Verein handelt.

ZitatWas hat es mit dem Feld IDKosten auf sich ?
->    Ist überflüssig. Ist noch aus meinem ersten Entwurf. Hatte ich vergessen zu löschen.
ZitatDer Preis ist auch ein Währungsfeld, nicht Longinteger.
->    Ja, aber mit 4 Nachkommastellen. Geht das so nicht?

ZitatDas Ja/Nein Feld Abgerechnet ist überflüssig, Du hast ja das Feld AbgerechnetAm, das reicht. Steht da ein Datum drin ist abgerechnet.
->    OK

ZitatWarum hast Du in der DB keine Beziehungen angelegt ?
->    Die müssen verloren gegangen sein. Habe sie jetzt wieder angelegt. Neue Datei ist beigefügt.

Noch mal eine Frage zu den Preisen. Hätte ich da lieber ein Feld PreisIntern und ein mit PreisExtern, also getrennt, anlegen sollen. Und diese dann jeweils mit einem Zeitraum von und bis, um die Berechnungen besser hinzubekommen? Die Idee kam mir noch heute Nacht.

MzKlMu

#20
Hallo,
ZitatDas Verschieben soll auch erst später erfolgen,
Nein, da wird nix verschoben, auch nicht später. Es wird das Schlüsselfeld "IDFuellung_F" gefüllt und fertig.
Zitat... Dokumentation auch der ,,Grundpreis pro Liter" stehen.
Was ist denn jetzt der "Grundpreis pro Liter" ? Bitte bemühe Dich einheitliche Begriffe zu verwenden.
ZitatWoher weiß die Abfrage dann, was die Re-ferenz ist?
Du bestimmst doch den Preis über das Datum, eine Referenz zur Preistabelle braucht es da nicht. Die wäre sogar falsch. >> Feld und Beziehung löschen.
ZitatKann man den zu Dokuzwecken nicht auch in der Tabelle speichern?
Nein, brauchst Du nicht. Den GesPreis in einer Abfrage zu rechnen reicht.
ZitatJa, aber mit 4 Nachkommastellen. Geht das so nicht?
Nein, das geht nicht. Ein Integer Zahl ist eine Ganzzahl, da kann es keine Kommastellen geben. Nimm Währung, die kann auch 4 Kommastellen.

ZitatNoch mal eine Frage zu den Preisen.
Nein, keine 2 Felder. Und nimm statt Text Zahlen (1=Intern , 2=Extern). Mit Zahlen kann eine Datenbank besser umgehen. Im Formular kann man mit einer Optionsgruppe den Text anzeigen. Für den Preis 2 Felder für das Datum wäre besser. Mache das mal mit etwas mehr Daten für die Preise und lade die DB noch mal hoch.
Bitte verwende Versionsnummer für die hochgeladenen Beispiele, "KompressorTest_03.Accdb" wäre jetzt an der Reihe.

PS:
Verwende zum Zitieren die Quotetags des Forums.
Gruß Klaus

Kutsche

#21
Hallo,
ZitatDas Verschieben soll auch erst später erfolgen, Nein, da wird nix verschoben, auch nicht später. Es wird das Schlüsselfeld "IDFuellung_F" gefüllt und fertig.
Ich hatte das vor Jahren mal so gemacht. Oder kann es sein, dass ich erst eine Anfügeabfrage und anschließen ein Löschen durchgeführt habe? Es soll zumindest so sein, dass der Inhalt aus tbl_Fuellung in tbl_Abrechnung verschben wird, mit den dazugehörigen Berechnungen. Anschließend soll tbl_Fuellung wieder leer sein.
Zitat... Dokumentation auch der ,,Grundpreis pro Liter" stehen.
Was ist denn jetzt der "Grundpreis pro Liter" ? Bitte bemühe Dich einheitliche Begriffe zu verwenden..
Das habe ich nicht gefunden. Wo habe ich das eingetragen?
ZitatWoher weiß die Abfrage dann, was die Referenz ist?
Du bestimmst doch den Preis über das Datum, eine Referenz zur Preistabelle braucht es da nicht. Die wäre sogar falsch. >> Feld und Beziehung löschen.
Die Beziehung habe ich gelöscht.
ZitatKann man den zu Dokuzwecken nicht auch in der Tabelle speichern?
Nein, brauchst Du nicht. Den GesPreis in einer Abfrage zu rechnen reicht.
OK. Aber wenn ich später mal schauen möchte, welche Beträge ich abgerechnet habe, wie mache ich das dann?
ZitatJa, aber mit 4 Nachkommastellen. Geht das so nicht?
Nein, das geht nicht. Ein Integer Zahl ist eine Ganzzahl, da kann es keine Kommastellen geben. Nimm Währung, die kann auch 4 Kommastellen.
Dies verstehe ich nicht. Das Feld ist doch schon auf Währung formatiert, mit 4 Nachkommastellen. Was muss ich ändern?
ZitatNoch mal eine Frage zu den Preisen.
Nein, keine 2 Felder. Und nimm statt Text Zahlen (1=Intern , 2=Extern). Mit Zahlen kann eine Datenbank besser umgehen. Im Formular kann man mit einer Optionsgruppe den Text anzeigen. Für den Preis 2 Felder für das Datum wäre besser.
Das habe ich angepasst. Muss jetzt bei der Eingabe der Preise geprüft werden, dass sich gueltigAb und GueltigBis nicht irgendwo überschneiden?

Ich habe die Datenbank soweit angepasst und hoffentlich nichts vergessen. Sie heißt jetzt auch "KompressorTest_03.Accdb"

LG Jens

MzKlMu

#22
Hallo,
ZitatEs soll zumindest so sein, dass der Inhalt aus tbl_Fuellung in tbl_Abrechnung verschben wird, mit den dazugehörigen Berechnungen. Anschließend soll tbl_Fuellung wieder leer sein.
Das ist völliger Unsinn (Sorry).
Die DAtensätze der tbl_Fuellung bleiben auf immer vorhanden, da wird nichts geleert. Die Abrechnung übernimmt über das Schlüsselfeld alle Daten dieser Tabelle zur Anzeige und Berechnung.
Zitat"Grundpreis pro Liter"
Das stammt von Dir, ist das der Preis der in der Preistabelle eingetragen ist?
ZitatAber wenn ich später mal schauen möchte, welche Beträge ich abgerechnet habe, wie mache ich das dann?
Über eine Abfrage, völlig problemlos.
ZitatDas Feld ist doch schon auf Währung formatiert, mit 4 Nachkommastellen.
Nein, in der Tabelle "tbl_Abrechnung" gibt es ein Feld Preis und das hast Du als Longinteger angelegt, das muss auch Währung sein, da wird ja der Preis aus der Preistabelle übertragen.
ZitatMuss jetzt bei der Eingabe der Preise geprüft werden, dass sich gueltigAb und GueltigBis nicht irgendwo überschneiden?
Das sind Feinheiten, die kommen zum Schluss.

Was ist denn aus den Beziehungen geworden ?
Da gibt es nur noch eine.

Bitte ergänze alle Beziehungen und lade die DB noch mal hoch.

Später baue ich Dir das mal ein mit den Preisen.
Gruß Klaus

Kutsche

Zitat"Grundpreis pro Liter"
Das stammt von Dir, ist das der Preis der in der Preistabelle eingetragen ist?
Ja, das ist der Preis.

ZitatDas Feld ist doch schon auf Währung formatiert, mit 4 Nachkommastellen.
Nein, in der Tabelle "tbl_Abrechnung" gibt es ein Feld Preis und das hast Du als Longinteger angelegt, das muss auch Währung sein, da wird ja der Preis aus der Preistabelle übertragen.
Das habe ich jetzt angepasst.

ZitatWas ist denn aus den Beziehungen geworden ?
Da gibt es nur noch eine.
Welche Beziehungen fehlen? Bei mir sind alle da. Und die Beziehung zur Tabelle tbl_Preis, so hatte ich es verstanden, habe ich gelöscht. Wenn du mir sagst, welche fehlt, hole ich dies noch nach.

Ansonsten ist die angepasst Datei beigefügt.

LG Jens


MzKlMu

Hallo,
noch eine kurze Frage:
Wird mit einer Abrechnung immer nur eine Füllung abgerechnet, oder können das auch mehr sein ?
Gruß Klaus

Kutsche

Hey Klaus,

es können auch mehrere Füllungen pro Besitzer bei einer Abrechnung sein.

LG und frohe Ostern
Jens

MzKlMu

#26
Hallo,
Zitates können auch mehrere Füllungen pro Besitzer bei einer Abrechnung sein.
Das ist eine Info, die hätte man gleich gebraucht. Das erfordert eine Änderung des Datenmodells. So wie das jetzt ist, ist es nicht möglich in einer Abrechnung mehr als eine Füllung zu erfassen, es gibt ja nur ein Feld für den Fremdschlüssel der Füllung.
Hier ist eine n:m Beziehung zwischen Abrechnung und Füllungen erforderlich. Dazu braucht es eine weitere Tabelle.

Ich werde das mal umbauen, mit der letzten Version die ich habe. Dauert aber etwas.
Gruß Klaus

Kutsche

Hallo Klaus,

OK, ich bin davon ausgegangen, dass dies erst bei der Abrechnung im Bericht notwendig ist. Sorry Und noch ein paar schöne Ostertage.

LG Jens

MzKlMu

#28
Hallo,
noch eine Frage, soll der Preis bestimmt werden am Tag der Abrechnung oder am Tag der Füllung ?

Ich brauche aber noch etwas Zeit.
Gruß Klaus

Kutsche

Hallo Klaus,
ZitatDas ist eine Info, die hätte man gleich gebraucht. Das erfordert eine Änderung des Datenmodells. So wie das jetzt ist, ist es nicht möglich in einer Abrechnung mehr als eine Füllung zu erfassen, es gibt ja nur ein Feld für den Fremdschlüssel der Füllung.

Ich habe das mal getestet, weil ich es nicht verstanden habe. Ich konnte schon mehrere Füllungen anlegen, auch für die gleiche Person mit den gleichen Flaschen. Allerdings fehlt wohl in der tbl_Fuellungen dann der Bezug zum Besitzer. Dafür hatte ich in meiner Ursprungsdatei in dieser Tabelle die ID vom Besitzer mit drin.

Bitte erkläre mir nach deinem Umbau kurz, was da genau nicht funktioniert, damit ich dies zukünftig berücksichtigen kann.

Zitatnoch eine Frage, soll der Preis bestimmt werden am Tag der Abrechnung oder am Tag der Füllung ?
Der Preis bezieht sich auf den Tag der Füllung.

Es eilt nicht. Bin ja schon froh, Hilfe zu bekommen. Dafür schon mal ein Dickes Danke. Zumal ich jetzt immer mehr merke, dass meine Überlegungen nicht in die richtige Richtung gegangen sind. ;-)

LG Jens