makroproblem
Moderatoren: Ingrid Weigoldt, Schlesselmann, Robert Schellmann
-
- Beiträge: 8
- Registriert: Sonntag 23. März 2003, 01:00
makroproblem
ich habe ein makro aufgezeichnet, das ein feld-alter- updaten soll und das ergebnis in ein anderes feld kopiert. leider läuft das makro nur soweit, wie ich es aufgezeichnet habe. es sollte aber die gesamte datenbank durchlaufen. wie löst man das problem?
-
- Beiträge: 3027
- Registriert: Donnerstag 24. April 2003, 02:00
- Wohnort: Viernheim
-
- Beiträge: 8
- Registriert: Sonntag 23. März 2003, 01:00
makroprolem
danke für die schnelle antwort, fr. weigoldt, ich habe mir formelact angesehen, weiss aber nicht wie die formel lauten sollte. ich habe das kopierproblem mit "copyfields" gelöst, der inhalt von feld a wird beim verlassen in feld b copiert. mein problem liegt aber darin, das ein weiteres feld "geb" beim verlassen mit hilfe von "calcage" das korrekte alter in das feld a schreibt. wie bringe ich kompletten durchlauf der gesamten datenbank zustande?
gruss klenzimike
gruss klenzimike
-
- Beiträge: 3027
- Registriert: Donnerstag 24. April 2003, 02:00
- Wohnort: Viernheim
-
- Beiträge: 8
- Registriert: Sonntag 23. März 2003, 01:00
copyfields und calcage sind kleine programme für act, die felder kopieren können und ein altersfeld kalkulieren können, d.h. aus dem gebdatum das alter in zahl errechnen. genau hier liegt mein problem. man wird halt immer älter, sodass die felder "alter" einmal pro jahr neu berechnet werden müssen. und da sollte mein makro eben alle felder der datenbank durchlaufen. es läuft aber nur soweit, wie ich im makroaufzeichnungs-modus gegangen bin. any idea?
gruss klenzimike
gruss klenzimike
-
- Beiträge: 3027
- Registriert: Donnerstag 24. April 2003, 02:00
- Wohnort: Viernheim
Hallo klenzimike,
hat ein bißchen gedauert, aber hier ist die Lösung:
In der Annahme, das Geburtsdatum hat die Feld-ID 98 (Standard, Kontrolle per FeldInfo), das Feld für das "Alter_aktuell" die Feld-ID 1034, und ein leider nötiges Zwischenfeld die Feld-ID 1036, dann können Sie mit folgender FormelACT-Befehlsdatei z.B. bei Austritt aus dem Feld "Geburtsdatum" das aktuelle Alter in Jahren zum aktuellen Systemdatum berechnen lassen.
$%1036=IIF("%98" = "" ; Now ; "%98")
$%1034=IIF(DateSerial ( Year(Now) , Month("%1036") , Day("%1036") )
- NOW > 0 ; Year(Now)-Year("%1036") -1 ; Year(Now)-Year("%1036") )
Da die Formel sehr lang ist, unbedingt im Editor den Zeilenumbruch ausschalten!!!
Ergänzen Sie diese Formel um ein $-Zeichen am Zeilenbeginn, wird die Formel für alle Datensätze bzw. die aktuelle Suche durchgeführt.
Ein Geburtsdatum in der Zukunft führt allerdings zu einem merkwürdigen Ergebnis.
Viel Spaß mit FormelACT!
hat ein bißchen gedauert, aber hier ist die Lösung:
In der Annahme, das Geburtsdatum hat die Feld-ID 98 (Standard, Kontrolle per FeldInfo), das Feld für das "Alter_aktuell" die Feld-ID 1034, und ein leider nötiges Zwischenfeld die Feld-ID 1036, dann können Sie mit folgender FormelACT-Befehlsdatei z.B. bei Austritt aus dem Feld "Geburtsdatum" das aktuelle Alter in Jahren zum aktuellen Systemdatum berechnen lassen.
$%1036=IIF("%98" = "" ; Now ; "%98")
$%1034=IIF(DateSerial ( Year(Now) , Month("%1036") , Day("%1036") )
- NOW > 0 ; Year(Now)-Year("%1036") -1 ; Year(Now)-Year("%1036") )
Da die Formel sehr lang ist, unbedingt im Editor den Zeilenumbruch ausschalten!!!
Ergänzen Sie diese Formel um ein $-Zeichen am Zeilenbeginn, wird die Formel für alle Datensätze bzw. die aktuelle Suche durchgeführt.
Ein Geburtsdatum in der Zukunft führt allerdings zu einem merkwürdigen Ergebnis.
Viel Spaß mit FormelACT!
Schöne Grüße aus Viernheim
Ingrid Weigoldt
Ingrid Weigoldt