Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: AMB am Januar 12, 2017, 16:20:57

Titel: Datumfeld
Beitrag von: AMB am Januar 12, 2017, 16:20:57
Hallo Zusammen!

Ich habe eine Tabelle mit den Feldern ID, Datum, Termin und Abschluss. Daraus habe ich eine Abfrage erstellt und noch zusätzlich zwei Felder berechnet:
- Dauer: [Abschluss]-[Datum]
- Ueberschreitung: [Abschluss]-[Termin]
Die Abfrage funktioniert einwandfrei.

Nun greife ich in einem Bericht per VBA auf die Abfrage zu und möchte mir die Gesamtsummen anzeigen lassen.
Textfeld1.Value = DSum("Dauer", "qryAbfrage")
Textfeld2.Value = DSum("Ueberschreitung", "qryAbfrage")

Mein Problem:
Textfeld1 ist leer
Textfeld2 wird korrekt angezeigt
Es muss etwas mit dem Feld Datum zu tun haben, denn Schreibweise und Benennung ist korrekt. Habe schon alles Mögliche getestet.

Hat jemand eine Idee was da falsch läuft?

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: HB9876 am Januar 12, 2017, 16:43:21
Hallo,
was fuer Feldtypen haben den "Datum" und "Termin"?
Titel: Re: Datumfeld
Beitrag von: crystal am Januar 12, 2017, 16:49:06
Hallo,

ja, es könnte sein, dass Access mit dem Begriff "Datum" etwas durcheinander kommt, weil es auch der Name einer Funktion ist.

Probier doch bitte, das Feld "Datum" in deiner Tabelle z.B. in "XDatum" oder "Datum1" umzubenennen.

lg
crystal
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 12, 2017, 17:09:22
Hallo,

Habe Datum in Erstelldatum umbenannt!
Funktioniert leider auch nicht!

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 12, 2017, 17:15:39
Sorry HB9876:

Beide Felder sind Datumsfelder und Abschluss ebenso.

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: HB9876 am Januar 12, 2017, 17:20:30
OK, das mit der Bezeichnungsaenderung hatte ich Vergessen, super Hinweis von Chrystal.

Kannst du evtl. einen screen shot posten, erstmal hoert sich das passend an fuer mich.

Gruss
Titel: Re: Datumfeld
Beitrag von: Beaker s.a. am Januar 12, 2017, 17:33:51
Könnte an NULL-Werten in der Spalte liegen.
Titel: Re: Datumfeld
Beitrag von: MzKlMu am Januar 12, 2017, 17:42:46
Hallo,
wenn man ohnehin im Bericht summiert, kann man auf VBA Verzichten und die Summen direkt mit der einfachen Summenformel berechnen.
= Summe([Dauer])
= Summe([Ueberschreitung])

Jeweils als Steuerelmentinhalt von Textfeld1 bzw. 2

Felder mit NULL spielen da keine Rolle.
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 16, 2017, 08:05:38
Guten Morgen,
kann ich das mit den NULL-Werten irgendwie umgehen? Würde die Berechnung lieber in VBA machen und den Bericht ungebunden lassen!
Titel: Re: Datumfeld
Beitrag von: MzKlMu am Januar 16, 2017, 08:21:11
Hallo,
Du hast doch eine Abfrage, was soll es für einen Sinn machen den Bericht ungebunden zu machen ?
Wobei sich die Frage stellt ist er wirklich ungebunden (ohne Datenquelle) ?
Und da Du die Dauer bzw. Überschreitung in der Abfrage berechnest, kannst Du auch gleich im Bericht wie vorgeschlagen summieren.
Wozu hier noch überflüssigerweise VBA bemühen ?
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 16, 2017, 09:54:28
Hallo,
ich benötige die beiden Zahlen für eine Statistische Übersicht. Es sind noch Diagramme, etc. über Unterberichte eingebunden.
Wenn ich den Bericht nun binde, dann bekomme ich die Zahlen, aber auch für jeden Datensatz einen Bericht.

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: MzKlMu am Januar 16, 2017, 10:27:58
Hallo,
Du kannst doch den Bericht auf einen Datensatz filtern, sehr einfach und problemlos.
Wie rufst Du denn den Bericht auf ?
Wenn Du ein Formular zur Anzeige der Datensätze verwendest, kannst Du mit einem Button im Formular genau den einen angezeigten Datensatz drucken. Das wäre der übliche Weg.
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 16, 2017, 10:45:38
Hallo,
ich möchte ja nicht einen Datensatz aufrufen. ich filter über das Formular den Zeitraum und möchte dann die Summe der Dauer und die Summe der Überschreitungen angezeigt bekommen.

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: MzKlMu am Januar 16, 2017, 11:05:01
Hallo,
wenn Du den Bericht bindest, so bekommst Du mehrere Datensätze angezeigt und das willst Du doch nicht, so wie ich das verstanden habe. Also musst Du einfach den Bericht auf den gewünschten Datensatz filtern.


Wenn das Datum für die Berechnung der Dauer leer sein kann, so kannst Du einen Ersatzwert setzen.
Dauer: [Abschluss]-Nz([Datum];[Abschluss])
Ersatzwert ist [Abschluss] damit wird für die Dauer eine 0 ausgegeben.
Zeige mal bitte den SQL Text der Abfrage.

Aber das sind alles Krücken, ein gebundener Bericht löst das Problem auf einfache Art

Titel: Re: Datumfeld
Beitrag von: AMB am Januar 18, 2017, 09:49:49
Hallo,

bin ja nicht so der Profi, kann also sein dass mir das entsprechende Fachwissen fehlt. Aber ich bekomme das nicht hin.

Nochmal eine Erklärung:
- bei dem Bericht handelt es sich um eine statistische Übersicht eines Zeitraumes
- der Zeitraum liefert zum Beispiel 10 Datensätze
- Im Bericht sollen aber nicht die einzelnen Datensätze, sondern nur die Gesamtsumme der Dauer und der Überschreitung
  angezeigt werden

Wenn ich nun den Bericht an die Abfrage binde, dann kann ich ohne VBA die Summen berechnen. Aber mein Bericht druckt dann 10 Seiten (für jeden Datensatz eine Seite).
Wie aber soll ich auf einen Datensatz filtern und trotzdem auf die korrekte Summe von 10 Datensätzen bekommen? Das funktioniert doch nicht!?

Des Weiteren habe ich mich mal an den NULL-Stellen versucht. Habe in der Berechnung 0,001 hinzuaddiert, funktioniert dann aber trotzdem nicht.

Hat jemand noch eine ander Idee?

Gruß
Michael
Titel: Re: Datumfeld
Beitrag von: MzKlMu am Januar 18, 2017, 10:04:17
Hallo,
zu NULL (=nix) kann man nichts addieren.
Hast Du meinen Vorschlag aus #13 mit dem Nz probiert ?

ZitatIm Bericht sollen aber nicht die einzelnen Datensätze, sondern nur die Gesamtsumme der Dauer und der Überschreitung
  angezeigt werden
Binde den Bericht an die Abfrage und nimm alle für die Summierung notwendigen Felder auf. Stelle in den Eigenschaften den Detailbereich auf "Sichtbar = Nein". Dann werden im Berichtsfuß nur die Summenfelder angezeigt. Die 10 Detaildatensätze nicht. Summenbildung in Feldern im Berichtsfuß wie in #7 vorgeschlagen. NULL spielt da keine Rolle.
Titel: Re: Datumfeld
Beitrag von: AMB am Januar 18, 2017, 13:09:24
Hallo,

Danke für den Ansatz, aber ich würde das gerne über VBA machen!

Habe jetzt auch eine Lösung gefunden. Die Lösung verstehe ich zwar nicht, aber sie funktioniert.
In Kombination mit [Termin] funktioniert die Berechnung.
Also: [Termin]-[Termin]+[Abschluss]-[Datum]

Meines Erachtens nach unlogisch, aber was solls!

Gruß
Michael