Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: WhiteCrow am September 24, 2010, 10:29:48

Titel: AbfragenProblem+Berechnungen
Beitrag von: WhiteCrow am September 24, 2010, 10:29:48
Tach ProfiLeutz!

Seid... ca. 2 Wochen versuche eine "logische" Abfrage zu basteln für mein Unterformular (ufrm_Zahlungen).
Leider jede versuche sind bis jetzt gescheitert und weis net wie ich schritt weiter kommen soll, oder lösen kann.
Hab schon nach vergleichbaren db gegoogelt, oder im einem anderem Forum gefragt,
aber da kamm auch keine einzige Antwort rein. (keinem database (http://www.access-o-mania.de/forum/index.php?action=profile;u=7789) oder DF6GL (http://www.access-o-mania.de/forum/index.php?action=profile;u=38) haben?) X)
Kann mir büdde jemand kurz helfen auf d.richtigen Spur zu kommen?
Hier (http://gwchar.npage.de/get_file.php?id=14147152&vnr=963483) ist d. "kastrierte" Dateianhang und im Unterformulars Endwurfansicht befinden sich rote-texte mit weiteren Erklärungen was ich mit
erreichen möchte bzw. wo es hackt.

Für jeden hilfreichen Tipp währe isch echt Dankbar.
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: Hondo am September 24, 2010, 15:44:30
Hallo,
Binde dein Formular dann erhälst du die MitarbeiterID.
ZahlungsID ist unsinnig da in dem Form Daten von mehreren Zahlungsvorgängen dargestellt werden.

Monatsfeld zu binden ist auch unsinnig.

Die Monate erhälst du am einfachsten per Werteliste:
"1";"Januar";"2";"Februar";"3";"März";"4";"April";"5";"Mai";"6";"Juni";"7";"Juli";"8";"August";"9";"September";"10";"Oktober";"11";"November";"12";"Dezember"

Stelle auf 2 Spalten und als Breite gib 0;1,73 ein.

Für den ersten Wert "StundenGesamt" (mit einem m) hab ich dir mal den Code erstellt, dieser wird durch das Ereignis "Nach Aktualisieren" des Monate-Auswahlfeld aufgerufen:

Deklarationsteil:
Option Compare Database
Option Explicit
Dim db As DAO.Database
Dim rs As DAO.Recordset


Prozedur:
Private Sub kom_FuerMonat_AfterUpdate()
   If db Is Nothing Then Set db = CurrentDb
   Set rs = db.OpenRecordset("Select sum(tDauer) As Summe1 From tbl_Stunden Where month(tDatum) = " & Me!kom_FuerMonat & " And MitarbeiterID = " & Me!MitarbeiterID, dbOpenDynaset)
   If Not rs.EOF Then
       If Not IsNull(rs!Summe1) Then
           Me.f_StundenGesammt = rs!Summe1
       End If
   End If
   rs.Close
End Sub


Gruß Andreas
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: WhiteCrow am September 24, 2010, 20:42:23
Tach!
als erste BIGthx für deine mühe mir zu helpen.
Weis ich echt zu schätzen!

Das mit fest vordefinierte- Wertliste hab da auch schon "rumjongliert"
wird aber glaube net funzen da es auch Jahr dabei sein muss.
(die Mitarbeiter können auch für mehrere Jahre eingestellt sein also so ein Januar kann mehrmals vorkommen)

Deswegen dachte am mm.yyyy Datum-Format und auch nur für die Monate und Jahre
welche für die Mitarbeiter angaben gemacht wurden/vorhanden sind.
Falls war Er nur 6 Monate "activ" erscheinen nur die im Kombi.
Also im Bezug auf MitarbeiterID aus tbl_Stungen [tDatum] gruppiert filtern.

Problem ist nur [StundenLohn] und [Fahrkosten] befinden sich im tbl_VertragsDetails (also eine andere Tabelle).
Was wider rum bedeutet: Unterformular muss auf eine Abfrage gebunden sein. (wegen Berechnungen)

Im Prinzip sollte diese Unterformular so optimiert sein,
ob man nur mit 2 "Schritten" dem Ziel erlangt:
1) dem vorhandenem Monat.Jahr Kombiefeld wählt.
"Zahlen" werden automatisch im graue Textfelder geladen und gerechnet,
2) bei "Vorschuss" (falls gezahlt wird) wie-viel schreibt
und Zahlungs- angaben werden für Bericht/Abrechnung, Bilanzen oder Archivierung im tbl_Zahlungen gespeichert.

Oder steckt in d.ganzen iwo ein Denkfehler?


Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: Hondo am September 25, 2010, 12:04:08
Hallo,
dann füge auch ein Kombi ein zur Jahreswahl!
Hier ein Beispiel wie es funktioniert

Gruß Andreas

[Anhang gelöscht durch Administrator]
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: WhiteCrow am September 26, 2010, 13:50:54
Tach!
auch Dir BIGthx für die Antwort.

das mit 2 Kombis klappt schon jut...
hab dein Lösung auch mehrere Stunden "angeschaut"
je doch das Unterformular (ufrm_Zahlungen) aus deinem Anhang ist am Tabelle tbl_VertragsDetails gebunden,
was wieder rum verhindert die Zahlungen, Berechnungsresultate bzw. Summen usw. im tbl_Zahlungen zu Speichern.
Und das ist gerade dabei mein Hauptproblem.

Denke das muss schon am eine Abfrage gebunden sein.
(also StundenLohn und Fahrkosten aus tbl_VertragsDetails
Stunden Summiert aus TagesDauer [tDauer] im tbl_Stunden
und Buchen/speichern als Monatszahlungen im tbl_Zahlungen)

Die wird aber so komplex...
...ob ich mit meinem KGS (Kurzzeit-Gedächtnis-Störungen) und
nicht ausgereiften Access-erfahrungen, net mehr klor komme.

Auf jeden fall... die Monatlichen-Zahlungen, müssen schon gespeichert werden.
Nicht nur im uFormular jedes mal neu generiert.
Weil d.Formular wegen Formatierungen usw. kann man kaum als
Abrechnung/Bericht ausdrucken, oder für Bilanzen verwenden (Diagramme usw.)
Denke die Tabellen "Architektur" ist schon (mehr oder weniger) dafür korrekt ist nur schwer
alles miteinander zusammenfügen um/und dem Resultat zu Speichern.

Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: Hondo am September 26, 2010, 20:38:34
Hallo,
du irrst.
In dieser Ansicht wird gar nichts gespeichert, sondern nur existierende Daten abgerufen.
Erklär mal was du denn speichern möchtest? Die Bezahlung an den Mitarbeiter oder was?
Dazu wäre das das falsche Formular. Das Unterformular zeigt lediglich den Anspruch den der Mitarbeiter in dem Zeitraum hat(te), unabhängig von irgendwelchen Zahlungen.

Andreas
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: WhiteCrow am September 27, 2010, 00:25:48
Abend!

Zitat von: Hondo am September 26, 2010, 20:38:34
Hallo,
du irrst.
In dieser Ansicht wird gar nichts gespeichert, sondern nur existierende Daten abgerufen.
jopp das stimmt. speichern wolte ich mit Hilfe von gebundenen Textfeldern
(wie hier (http://www.access-home.de/cms/?kat=29&subsite=1&cms_id=&bsp_db_id=183) auch beschrieben)
das klappt bestens aber nur mit richtigen Formularanbindung.

Zitat von: Hondo am September 26, 2010, 20:38:34Erklär mal was du denn speichern möchtest? Die Bezahlung an den Mitarbeiter oder was?
Dazu wäre das das falsche Formular. Das Unterformular zeigt lediglich den Anspruch den der Mitarbeiter in dem Zeitraum hat(te),
unabhängig von irgendwelchen Zahlungen.
jou. und genau das meinte ich.
Die Bezahlung(en) an den Mitarbeiter.
Genauer: Hinzufügen von Bezahlung(en) an den Mitarbeiter, welche auf Basis von verschiedenen
Daten, aus verschiedenen Tabellen, automatisch von Access ausgerechnet und im Tabelle Gespeichert wird.
(in d.Art: Neue Monatszahlung anlegen ohne "selber zahlen tippen" + im Tabelle Speichern)

oder kann man so was mit Formular(en) "auf einem schritt" nicht erreichen?
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: Hondo am September 27, 2010, 07:40:29
Hallo,
in dieser Ansicht zu speichern macht doch gar keinen Sinn.
Stell dir vor du wählst das Jahr 2009 aus. Was willst du da speichern was nicht schon längst gespeichert ist?

Genauso der Stundenlohn. Änderst du den Stundenlohn z.b. in 2010, und rufst die Daten von 2009 auf, werden die Beträge mit dem falschen Stundenlohn berechnet.
Ich würde mir mal an deiner Stelle Grundlegende Gedanken darüber machen.

Andreas
Titel: Re: AbfragenProblem+Berechnungen
Beitrag von: WhiteCrow am September 27, 2010, 17:10:37
Zitat von: Hondo am September 27, 2010, 07:40:29
...Änderst du den Stundenlohn z.b. in 2010,
und rufst die Daten von 2009 auf, werden die Beträge mit dem falschen Stundenlohn berechnet.
Eben nicht. diese Unterformular soll nur der Zahlungseingabe dienen,
nix anderes als ausrechnen lassen und per klick speichern.
Kein Abruf, blättern, ändern usw. von vorhandenen Datensetzen/Zahlungen.
Nur Eingabemodus.
Für Zahlungsübersicht "sorgt" auf rechte Seite d.selben Registers noch einem anderen Unterformular
der die Zahlungen "auflistet" und eventuell löschen "freigibt".

Zitat von: Hondo am September 27, 2010, 07:40:29
...Änderst du den Stundenlohn z.b. in 2010...
ne ne. Ändern geht allein wegen solche falsch-Berechnungen nicht. Da hast du auch recht!
Falls eins von z.B. Stundenlohn, Fahrkosten, Urlaubsmenge oder Vertragsdauer sich ändern sollten...
(ist ne komplett andere Geschichte wo ich schon hinter mir habe aber im Anhang "kastriert" ist)
muss auch neue Datensatz eingelegt werden...
(  [MitarbeiterID] + neue[VertragsDetailsID]  ) ...mit neuen Vertrags-Daten/Angaben.
Und von dort auch werden oder sollten die aktuellen Daten weiter bezogen werden.

Boah... ich sehe schon einfache Unterformural steckt aber einiges dahinter.
Leider gibt im Netz keine vergleichbare Datenbanken wo man was von lehnen könnte... .  :'(