Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datumsfuktionen nutzen und dynamisch vorausberechnen!
zurück: Problem bei Abfrage - Es werden immer alle Daten gezeigt... weiter: relativer Zelleninhalt Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
11. Jun 2007, 21:06
Rufname: haukilein
Wohnort: Osnabrück

Datumsfuktionen nutzen und dynamisch vorausberechnen! - Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Verschoben aus Tipps und Tricks. Im Forum Tipps und Tricks bitte keine Themen mit Fragen eröffnen!
stpimi, 11.06.2007

Liebe Leute im Forum,

ich habe folgendes Problem:

Ich habe ein vorgegebenes Datum (Dtumsformat) und möcht Access mit einer Abfrage dazu bringen, 60 Monate zum Datum zu addieren dann 3 Monate abzuziehen und schließlich noch einen Tag.

Das ganze könnte so ablaufen

Ausgangsdatum: 01.03.2001
Verlängerung: 60 Monate
Kündigungsfrist: 3 Monate (muss also abgezogen werden!)
zu guter letzt minus 1 Tag, damit der Kunden nicht die Frist verpasst...

Wir haben folgendes probiert

Ausgangsdatum+(Verlängerung*30)-(Kündigungsfrist*30)-1........

aber leider kommt dabei nur der 04.11.2005 raus. Korrekt wäre allerdings der 30.11.05. Kann dieses Problem irgend jeamnd lösen?

Ich wäre um Ratschläge sehr dankbar.

Grüße
haukilein
stpimi
Moderator Access


Verfasst am:
11. Jun 2007, 22:09
Rufname:
Wohnort: Graz


AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus Haukilein!

Access bietet da eine wunderbare Funktion an: DatAdd (bzw. DateAdd in VBA).
Code:
NeuesDatum: DatAdd("m";Verlängerung - Kuendigungsfrist;Ausgangsdatum) - 1
(Dein Problem ist, dass du generell den Monat zu 30 Tagen rechnest)
_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
12. Jun 2007, 11:48
Rufname: haukilein
Wohnort: Osnabrück

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo Michael,

oh mann, vielen Dank für dein Tipp. Es läuft schon. Danke danke...

Nun grübel ich schon den ganzen Morgen über etwas Anderes. Vielleicht hast du da ja auch noch eine spontane Idee..

Ich habe eine Vertragsverwaltung eingerichtet. Nun möchte ich Fristen, Laufzeiten etc. dynamisch verwalten.

Es gibt im wesentliche vier Werte:

Vertragslaufzeit (Monate)
Erstkündigungsfrist (Monate)
Verlängerungslaufzeit (Monate)
Reguläre Kündigungsfrist (Monate)
Vertragsbeginn (Datum)
Vertragsende (Datum)

Ich möchte erreichen, das zu einem Stichtag "x" zu jedem Vertrag angezeigt werden kann, wann die nächste Kündigungsoption ausläuft.

Als erstes wird das berechnet, was Du mir gestern gesagt hast, nämlich der frühste Kündigungstermin:
Code:
=Vertragsbeginn + Vertragslaufzeit - Erstkündigungsfrist - 1
Tag (das funktioniert..)

Dann muss berechnet werden, der nächste Kündigungstermin, nachdem der Vertrag erstmalig verlängert wurde:
Code:
=Vertragsbeginn + Vertragslaufzeit + Verlängerungslaufzeit - Reguläre Kündigungsfrist - 1
Tag (das habe ich auch hinbekommen..)

Der Knackpunkt ist nun, das dies ggf. solange gemacht werden muss, bis der nächste Kündigungstermin in der Zukunft liegt. Es muss also irgendwie noch da heutige Datum mit einbezogen werden.

Zum Beispiel:

VBeginn = 01.01.2000
Vlaufzeit = 24 Monate
Erstkündigungsfrist = 3 Monate

Also frühster Kündigungstermin = 30.09.2001

Verlängerungslaufzeit = 12 Monate
Reguläre Kündigungsfrsit = 6 Monate

Also nächster Kündigungtermin = 30.06.2002

Problem: Dies Angabe nutzt mir nichts, weil de Vertrag immer noch läuft, das Ergebnis an dieser Stelle muss 30.06.2007 sein, weil er schon fünf mal verlängert wurde.

Ich arbeite erst seit einigen Wochen mit Access. Wie kann ich hier vorgehen?

Danke und Gruß
haukilein
stpimi
Moderator Access


Verfasst am:
12. Jun 2007, 12:15
Rufname:
Wohnort: Graz

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus!

Da wirst Du nicht umhin kommen, eine Berechnungsfunktion mittels VBA zu erstellen. Die Funktion erhält alle Parameter übergeben und arbeitet in einer schleife solange, bis das errechnete Datum größer als das Tagesdatum ist.

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Gast



Verfasst am:
12. Jun 2007, 23:09
Rufname:


AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo Michael,

also vielen Dank für die Tipps. Dann weiß ich nun, dass ich hier um Code nicht drumherum komme. Ich werde mit wohl zunächst aneignen müssen, wie so eine Prozedur überhaupt aufgebaut ist.

Dann werde ich mal suchen, wie so etwas geht.

Irgendwann muss man damit ja mal anfangen.
stpimi
Moderator Access


Verfasst am:
13. Jun 2007, 05:28
Rufname:
Wohnort: Graz

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus!

Öffne ein neues Modul und schreib dort in den Editor:
Code:
Function fctKuendigungsdatum(datBeginn As Date, lngVLaufzeit As Long, _
                             lngKuendFrist As Long) As Date
On Error GoTo ErrorHandling
    Dim datKuend As Date
   
    'erstmalige Berechnung
    datKuend = DateAdd("m", lngVLaufzeit - lngKuendFrist, VBeginn) - 1
    'jetzt die Schleife
    '(muss immer nur je eine weitere Verlängerungsperiode addieren)
    Do While datKuend < Date
        datKuend = DateAdd("m", lngVLaufzeit, datKuend)
    Loop
    fctKuendigungsdatum = datKuend
    Exit Function
ErrorHandling:
    MsgBox Err.Number & vbCrLf & Err.Description
End Function
In der Abfrage schreibst Du jetzt als Feldname
Code:
NaechsteKuendigung: fctKuendigungsdatum(Beginndatum, Laufzeit, Kuendfrist)
Ungetestet!
_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
13. Jun 2007, 16:35
Rufname: haukilein
Wohnort: Osnabrück

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo Michael,

mensch! Vielen Dank. Du bist ja schneller als die Polizei erlaubt.

Leider gibt es einen Schreibfehler. Habe alles so gemacht wie du sagst, aber Access bemeckert die Syntax.

Hast Du da eine Ahnung woran es liegt?

Ich habe in der Abfrage jetzt folgendes eingegeben:
Code:
NaechsteKuendigung: fctKuendigungsdatum([VERTRAG]![VBeginn], [VERTRAG]![VErstLaufzeit], [VERTRAG]![VErstkündigungsfrist])
Aber es funzt nicht!!

Was mache ich falsch?

Danke für die Unterstützung.

Grüße
haukilein

_________________
-----------------------------------------------
Grüße von HAUKILEIN
stpimi
Moderator Access


Verfasst am:
13. Jun 2007, 18:26
Rufname:
Wohnort: Graz

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus!

Sorry, mein Fehler - in der Abfrage müssen die Argumente mit ; getrennt werden.
Code:
NaechsteKuendigung: fctKuendigungsdatum([VERTRAG]![VBeginn];[VERTRAG]![VErstLaufzeit]; [VERTRAG]![VErstkündigungsfrist])

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
13. Jun 2007, 21:05
Rufname: haukilein
Wohnort: Osnabrück

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo Michael,

also sorry dass ich nochmal fragen muss, aber es funzt nicht. Ich bin mir sicher, dass ich etwas falsch mache.

Ich verwende eine Aktualisierungsabrage.

Ich gebe also bei FELD ein:
Code:
NaechsteKuendigung: fctKuendigungsdatum([VERTRAG]![VBeginn];[VERTRAG]![VErstLaufzeit]; [VERTRAG]![VErstkündigungsfrist])
...und bei Tabelle:
Code:
Vertrag
(so heißt die Tabelle, in der es das Feld "NaechsteKuendigung" gibt!

Ich habe auch andere Kombinationen probiert. Aber weiß nicht was richtig ist.

Kannst du noch einmal helfen?

Gruß und Danke

Es sagt immer:
Zitat:
Undefinierte Funktion fctKuendigungtermin in Ausdruck!!!
Woran liegt das?

Oben drüber steht "Option Compare Database"

_________________
-----------------------------------------------
Grüße von HAUKILEIN
stpimi
Moderator Access


Verfasst am:
13. Jun 2007, 22:46
Rufname:
Wohnort: Graz

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus!

Das Modul selbst muss anders heissen als die Funktion.

Und wenn du den nächsten KüTermin aktualisieren willst, musst Du die Funktion in der Spalte mit dem Kündigungstermin (aus der Tabelle, nicht die benutzerdefinierte Spalte!) unter Aktualisieren in der Form
Code:
=fctKuendigungsdatum([VERTRAG]![VBeginn];[VERTRAG]![VErstLaufzeit]; [VERTRAG]![VErstkündigungsfrist])
hinschreiben.
_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
13. Jun 2007, 23:34
Rufname: haukilein
Wohnort: Osnabrück

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo bzw. Guten Abend Michael,

hast mir super geholfen. Wahnsinn, wie fit ihr Jungs seid.

Sag mal eine letzte Sache:
Wenn ich nun nicht nur einen Datensatz aktualisieren will sondern 550, warum Stürzt Access dabei ab?

Theoretisch kann ich diese Funktion auch aus einem Eingabeformular starten oder? Z.B. bei Mouseclick soll er mir dann das näcshte Kündigungsdatum in ein Feld ausgeben. Das geht, nicht wahr!

Gute N8 und ich danke dir vielmals.

_________________
-----------------------------------------------
Grüße von HAUKILEIN
stpimi
Moderator Access


Verfasst am:
14. Jun 2007, 07:28
Rufname:
Wohnort: Graz

AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Servus!

Also normalerweise dürfte die Funktion auch bei 550 Sätzen kein Problem machen. Es sind allerdings sicher einige Optimierungen hinsichtlich der Performance möglich, so daß ohne Schleife und mit wenige DateAdds gearbeitet wird.

Gibt es denn beim Absturz eine Fehlermeldung?

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
haukilein
Excel-Kenner (ohne VBA)


Verfasst am:
14. Jun 2007, 13:19
Rufname: haukilein
Wohnort: Osnabrück


AW: Datumsfuktionen nutzen und dynamisch vorausberechnen! - AW: Datumsfuktionen nutzen und dynamisch vorausberechnen!

Nach oben
       Version: Office XP (2002)

Hallo Michael,

nein. eine Rückmeldung leifert Access nicht.

Ich gehe dann nach ein paar Minuten in den Task Manager und stelle fast, Dass Access keine Rückmeldung gibt. Access bleibt sozufagen stehen.

ICh weiß hier nicht weiter.

Könnte es an leeren Feldern liegen?

_________________
-----------------------------------------------
Grüße von HAUKILEIN
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Access Tabelle dynamisch aus anderen Tabellen erweitern 4 Tutone 418 08. Apr 2013, 08:50
Tutone Access Tabelle dynamisch aus anderen Tabellen erweitern
Keine neuen Beiträge Access Tabellen & Abfragen: Variablen in VBA SQL-Abfragen nutzen 5 Gast 9367 28. Jul 2012, 01:23
Beaker s.a. Variablen in VBA SQL-Abfragen nutzen
Keine neuen Beiträge Access Tabellen & Abfragen: In Abfrage From-Tabelle dynamisch über variable bestimmen? 2 Sarah86 389 10. Sep 2011, 09:32
steffen0815 In Abfrage From-Tabelle dynamisch über variable bestimmen?
Keine neuen Beiträge Access Tabellen & Abfragen: Feldeigenschaften dynamisch ín neuer Tabelle erstellen 2 blicki 702 11. Apr 2011, 15:09
blicki Feldeigenschaften dynamisch ín neuer Tabelle erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Front-End mit verschiedenen Benutzer nutzen 8 marlluf 1112 24. Jul 2009, 20:06
DBKlempner Front-End mit verschiedenen Benutzer nutzen
Keine neuen Beiträge Access Tabellen & Abfragen: Wordvorlage in Bericht nutzen???? 4 Paiden2511 394 31. März 2009, 19:26
Paiden2511 Wordvorlage in Bericht nutzen????
Keine neuen Beiträge Access Formulare: Textfeld als Button nutzen - #Name? 6 Gast666 804 15. Sep 2007, 12:50
seru82 Textfeld als Button nutzen - #Name?
Keine neuen Beiträge Access Formulare: nutzername aus windowsanmeldung nutzen 1 Zyrano 390 16. Apr 2007, 20:05
steffen0815 nutzername aus windowsanmeldung nutzen
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn Funktion mit Platzhalter nutzen 5 hp80 6170 11. Apr 2007, 16:44
Gast Wenn Funktion mit Platzhalter nutzen
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterien bei Queries dynamisch aendern 5 Matthias........ 809 19. Sep 2006, 21:09
Nouba Kriterien bei Queries dynamisch aendern
Keine neuen Beiträge Access Formulare: Kombinationsfeld dynamisch belegen 12 darkreeper 1301 14. Sep 2006, 16:24
jens05 Kombinationsfeld dynamisch belegen
Keine neuen Beiträge Access Formulare: A00: Kontrollkästchen in if-Abfrage nutzen 3 VipeR2006 803 06. Sep 2006, 01:52
Willi Wipp A00: Kontrollkästchen in if-Abfrage nutzen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen