Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: J.D am März 02, 2020, 16:57:25

Titel: DomSumme in Gruppenfuss
Beitrag von: J.D am März 02, 2020, 16:57:25
Hallo Forum,

leider ist mein andere Thread nicht so erfolgreich, da mir die Werte aus der zweiten Tabele mehrfach angezeigt werden und es hierfür anscheind keine Lösung gibt.

Daher versuche ich jetzt das mit DomSumme zumindest die Zeit angezeigt wird für den Tag, aber auch hier scheint es nicht so einfach zu sein.
Im Berichtsfuss habe ich neue Felder hinzugefügt um auch zu sehen das die erforderlichen Daten (StoerDatum, MaschinenID) für die Abfrage richtig sind...

Denoch werden mir alle Störungen zusammen gezählt und die übergebenen Parameter ignoriert!

Tabele Störung
Felder ZeitDez, Datum, Maschinen_ID

Bericht Felder StoerDatum, MaschinenID

=DomSumme("ZeitDez";"Störung";"Datum =" & [StoerDatum] Und "Maschinen_ID =" & [MaschinenId])

Lasse ich das Datum weg, wird mir die Störzeit zwar für die jeweilige Maschine angezeigt aber eben alles komplett und nicht mit dem Datum
=DomSumme("ZeitDez";"Störung";"Maschinen_ID =" & [Maschinenid])

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: MzKlMu am März 02, 2020, 17:15:57
Hallo,
zu den Ungereimtheiten der Übersetzung gehört, dass Du DomSumme verwenden musst, aber innerhalb das Strings musst Du reines SQL verwenden also statt UND musst Du AND schreiben. Und das AND muss auch in den String.

Wenn das Feld auf dem Bericht vorhanden ist, solltest Du Me.[MaschinenId] schreiben.
Weiterhin, muss das Datum SQL konform verglichen werden, entweder US Format (mm/dd/yyyy) oder ISO (yyyy/mm/dd).

=DomSumme("ZeitDez";"Störung";"Datum =" & Format(StoerDatum; "\#yyyy\-mm\-dd\#") & " AND Maschinen_ID =" & Me.[MaschinenId])
ungetestet
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 02, 2020, 17:27:16
Danke,

Access macht mir in meinem Feld im Bericht
=DomSumme("ZeitDez";"Störung";"Datum =" & Format([StoerDatum];"""#yyyy-""mm""-dd#""") & " AND Maschinen_ID =" & [Me].[MaschinenId])
und entfernt die \\\, im Feld steht dann #Name?

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: MzKlMu am März 02, 2020, 17:33:31
Hallo,
versuche mal die deutschen Formatkurzzeichen.
=DomSumme("ZeitDez";"Störung";"Datum =" & Format(StoerDatum; "\#jjjj\-mm\-tt\#") & " AND Maschinen_ID =" & Me.[MaschinenId])
Du kannst auch mal das probieren:
=DomSumme("ZeitDez";"Störung";"Int(Datum) =" & Int(StoerDatum) & " AND Maschinen_ID =" & Me.[MaschinenId])

Ich würde das in eine VBA Funktion auslagern, dann braucht es diesen Sprachwirrwar nicht, da ist alles in englisch.

Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 02, 2020, 17:39:08
Funktioniert leider alles nicht,

wie gesagt zeigt er mir ja die Summe der Maschine an wenn ich
=DomSumme("ZeitDez";"Störung";"Maschinen_ID =" & [MaschinenId])
schreibe, daher denke ich nicht das ich das Me. benötige, aber es fehlt halt noch der Filter nach dem Datum...

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 02, 2020, 17:51:08
Ok, danke dir MzKlMu!

Es geht doch ich habe nochmal etwas rumprobiert und habe das Me. entfernt! 

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: MzKlMu am März 02, 2020, 17:58:04
Hallo,
dann zeige bitte auch Deine Lösung. Hier lesen ja auch andere mit, daher sollten auch die Lösungen gezeigt werden.
Das Me. war an der Stelle Unsinn. Me kann in einem Ausdruck eines Berichtsfeldes nicht verwendet werden.
Me ist in VBA der Bezug auf das aktiven Objekt (Bericht/Formular) und ist an der Stelle falsch. Hatte ich übersehen, sorry.
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 03, 2020, 13:56:55
Gerne mache ich das... ich musste nur gucken das es auch alles so funktioniert wie es soll ;)

Felder müssen natürlich angepasst werden
Das Feld ZeitDez wird in der Datenbank berechnet mit
[Zeit]*60*24/60
=DomSumme("ZeitDez";"Störung";"Datum =" & Format([StoerDatum];"\#jjjj-mm-tt\#") & " AND Maschine =" & [MaschinenId])
So erhalte ich die Störzeit auf den Bericht und kann dann so die Störzeit von der Produktionszeit abziehen und mit dem Soll gegenrechnen...

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: MzKlMu am März 03, 2020, 14:19:08
Hallo,
*60 und /60 hebt sich gegenseitig auf.
Wenn Du es als Bruch schreibst, kannst du es erkennen.

Zeit *60 * 24
-------------------
      60

Die 60 kann rausgekürzt werden.

Es reicht also:
[Zeit]*24
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 03, 2020, 18:21:58

Ja  :-[

Schleich fehler  ::)

Grüsse J.D
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: Beaker s.a. am März 03, 2020, 21:13:10
Hallo J.D.
Warum nimmst du Klaus' Rat nicht an und lagerst die Datumsformatierung in
ein allgem. Modul aus; - das brauchst du doch ständig. Ich würde verrückt
werden, wenn ich bei jedem Datum diesen Formatbefehl tippen müsste.
Public Function SQLDatum(ByVal datWert As Date) As String
    SQLDatum = _
            Format$(datWert, "\#yyyy\-mm\-dd\#")
End Function

In SQL-Strings und Dom-Funktionen kannst du das dann in dieser Form verwenden
"..." & SQLDatum(Datumsfeld) & "..."

gruss ekkehard
Titel: Re: DomSumme in Gruppenfuss
Beitrag von: J.D am März 06, 2020, 15:16:19
Zitat von: Beaker s.a. am März 03, 2020, 21:13:10
Hallo J.D.
Warum nimmst du Klaus' Rat nicht an und lagerst die Datumsformatierung in
ein allgem. Modul aus; - das brauchst du doch ständig. Ich würde verrückt
werden, wenn ich bei jedem Datum diesen Formatbefehl tippen müsste.

Mein derzeitiger Wissensstand gibt es nicht her :D

Danke für die Funktion welche ich gerne übernehme...

Grüsse J.D