Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: fegefeuer am November 10, 2017, 20:54:42

Titel: Anzahl Tage bis heute berechnen
Beitrag von: fegefeuer am November 10, 2017, 20:54:42
Hallo liebe Access-Freunde,

ich habe ein Problem bei der Berechnung einer Anzahl von Tagen bis heute.

Ich habe ein Feld [SLA Ende] und ein Feld [Restlaufzeit].

Ich möchte nun im Formular beim aufruf des Datensatzes die Anzahl an Tagen bis [SLA Ende] berechnen.
dies habe ich mit    >DatDiff ("d", [SLA Ende], heute())<      berechnet.

Leider bekomme ich hierbei die Fehlermeldung:

"Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck beim Hingehen eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Der von Ihnen eingegebene Ausdruckenthält den Namen einer Funktion, die von Microsoft Access nicht gefunden werden kann."

Was mache ich hier falsch??

Vielen Dank im voraus!
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: MzKlMu am November 10, 2017, 22:57:10
Hallo,
Heute() gibt es nicht bei VBA.
Entweder Jetzt() (Datum mit Uhrzeit) oder Datum().
Außerdem ist in einem deutschen Access t zu verwenden sowie Semikolons.
=DatDiff ("t"; [SLA Ende]; Datum())
Oder einfach so:
=[SLA Ende] - Datum()        
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: PhilS am November 10, 2017, 23:23:41
Zitat von: fegefeuer am November 10, 2017, 20:54:42
Ich möchte nun im Formular beim aufruf des Datensatzes die Anzahl an Tagen bis [SLA Ende] berechnen.
dies habe ich mit    >DatDiff ("d", [SLA Ende], heute())<      berechnet.

Leider bekomme ich hierbei die Fehlermeldung:

"Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck beim Hingehen eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Der von Ihnen eingegebene Ausdruckenthält den Namen einer Funktion, die von Microsoft Access nicht gefunden werden kann."

Ich halte nicht viel von deutschen Übersetzungen in der Programmierung und empfehle immer die englischen Ausdrücke zu verwenden. - Wenn Access sie dir automatisch übersetzt, kann Access sie bei Bedarf i.d.R. auch zurückübersetzen. Wenn du sie direkt auf Deutsch schreibst, klappt das nicht immer.

Dass Hauptproblem ist aber, dass die Funktion DateDiff heißt.
DateDiff ("d", [SLA Ende], Date())


Wieso eigentlich beim Hingehen? Ich würde entweder, wenn du den Wert speichern willst, per VBA im Current-Ereignis (Beim Anzeigen) machen oder, nur für die Anzeige im Formular, direkt in den Steuerelementinhalt schreiben.
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: MzKlMu am November 10, 2017, 23:33:01
Hallo,
ich hatte in meinen Vorschlägen keine Ereignisprozedur verwendet, sondern direkt in ein Formularfeld. Wenn man das so macht, hat man gar keine andere Wahl als die deutsche Syntax zu benutzen. Das beim Hingehen hatte ich überlesen.
Das heißt aber, die Restlaufzeit soll in der Tabelle gespeichert werden, was aber falsch ist. Das Formularfeld (oder Berechnung in einer Abfrage) reicht. Die Restlaufzeit kommt nicht in die Tabelle das wäre ein Fehler.
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: PhilS am November 10, 2017, 23:57:19
Zitat von: MzKlMu am November 10, 2017, 23:33:01
...direkt in ein Formularfeld. Wenn man das so macht, hat man gar keine andere Wahl als die deutsche Syntax zu benutzen.
Das trifft eigentlich nur auf das Listentrennzeichen (Komma vs. Semikolon) zu. Welches eher dem Zahlenformat als der Sprache zuzuordnen ist. Den Rest versteht ein "deutsches" Access auch auf englisch.
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: fegefeuer am November 14, 2017, 04:45:52
Hallo Access-Freunde,

vielen Dank für eure schnellen Antworten.

Ich bin noch nicht so lange mit Access unterwegs.
Allerdings habe ich jetzt jede eurer Berechnungen im Formularfeld unter "Eigenschaften - Ereignis - Nach Aktualisierung" eingetragen und bekomme immer noch keinen Wert in meinem Feld  "Restlaufzeit" angezeigt.

Welche Möglichkeiten gibt es denn noch den Wert aus [SLA-Ende] bis Datum() im Feld "Restlaufzeit" zu ermitteln.

Vielen Dank für eure Hilfe
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: MzKlMu am November 14, 2017, 09:07:35
Hallo,
die Formel hat mit den Eigenschaften nichts zu tun. Lösche den Eintrag dort wieder.
Bei Steuerelementinhalt trägst Du dann ein:
=[SLA Ende] - Datum()   

PS:
Du solltest auch über die Struktur noch mal nachdenken. Die Aufzählungsfelder (Dauer Telefonat und Dauer Datenbearbeitung) sollten in eine extra Tabelle als je ein Datensatz. Aufzählungsfelder sind Felder mit gleichem Namen aber einer zusätzlichen Zahl. Diese sind für eine Datenbank ungeeignet. 
Titel: Re: Anzahl Tage bis heute berechnen
Beitrag von: Beaker s.a. am November 14, 2017, 14:04:16
Zusätzlich zu Klaus, entferne die Sonderzeichen aus den Tabellenfeldnamen.