In meiner Datenbank habe ich ein Feld, das sehr wichtig ist, aber in der Hektik auch einmal vergessen werden kann. Ich möchte nun verhindern, das ein Report ausgegeben wird, obwohl das Feld leer ist. Die grosse Frage:
Wie ist die korrekte Formel, wenn das Feld “Beispiel” heisst und der Message Typ (z.B.) “1-Beachte” sein soll?
Alles was ich gefunden habe stand in der History 2008:
• ABORT(Fehlertext) bricht den Datenbankreport nach Ausgabe einer messagebox ab. Es (wird?) nicht gedruckt und keine E-Mail versandt. Im Fehlertext kann mit ‘|’ ein Zeilenumbruch erzwungen werden. Beispiel: ABORT(‘Fehler im Datenbankreport.|Keine E-Mail-Adresse definiert.’)
• MESSAGEBOX(Typ, Anzeigetext, Button-Texte) zeigt eine messagebox an.
Typ zeigt verschiedene Icons an 0 - kein Icon; 1 - Beachte (Ausrufezeichen); 2 - Abfrage (Fragezeichen); 3 - Stopp (Stoppschild), 4 - Info
Anzeigetext - Text der messagebox. Mit ‘|’ kann ein Zeilenumbruch erzwungen werden.
Button-Texte - Texte der Schaltflächen. Verschiedene Schaltflächen werden durch ‘|’ abgetrennt.
Wenn man einen leeren String übergibt, wird ein Default-Button erzeugt: “OK” für Typen 0, 1, 4, “Abbruch” für Typ 3, “OK|Abbruch” für Typ 2
Rückgabewert ist der ausgewählte button: 0 für den Ersten, 1 für den 2. usw. Wenn man Esc drückt oder den Schließknopf betätigt, wird der Wert für den letzten Button zurückgegeben.
Unter Windows wird der erste button links angezeigt, unter MacOS rechts.
Beispiel: IF 0=MESSAGEBOX(2, ‘Kein Name festgelegt.|Fortfahren oder Abbrechen?’, ‘Fortfahren|Abbrechen’) THEN ABORT(‘Report wird abgebrochen.’)
Die Syntax und die Definition sind mir schon klar, aber mit dem Beispiel kann ich für meine Zwecke so gar nichts anfangen, wenn ich die MESSAGEBOX und den ABORT an eine Bedingung knüpfen will.
Auch das mit den Rückgabewerten und den Umgang damit verstehe ich noch nicht. Muss ich da eine Variable definieren und den ABORT von dessen Wert abhängig machen?
Es wäre mir schon sehr geholfen, wenn hier jemand einfach mal so die erforderliche Formel hinschreibt, dann kann ich das bestimmt nachvollziehen.