The Events tab page, allows you to assign a macro to certain events which occur in a database form.
To link an event with a macro, first write a macro that contains all the commands to be executed when the event happens. Then assign this macro to the respective event by clicking the ... button beside the corresponding event. The Assign Macro dialogue box opens, in which you can select the macro.
The following actions can be configured individually, meaning that you can use your own dialogue boxes to depict an action:
Displaying an error message,
Confirming a delete process (for data records),
Checking input when saving a data record.
For example, you can issue a "confirm deletion" request such as "Really delete customer xyz?" when deleting a data record.
The events that are shown in the Events dialog cannot be edited directly. You can remove an event from the list by pressing the Del key.
The following lists and describes all events in a form that can be linked to a macro:
The After record action event occurs directly after the current record has been changed.
The After record change event occurs directly after the current record pointer has been changed.
The Before record action event occurs before the current record or record set are changed. Return True when changing is allowed, otherwise False. For example, the linked macro can request confirmation in a dialog.
The Before record change event occurs before the current record pointer - SQL cursor - is changed. Return True when moving is allowed, otherwise False.
The Before reloading event occurs before the form is reloaded. The data content has not yet been refreshed.
The Before submitting event occurs before the form data is sent. Returning True approves the submission, False stops it.
The Before unloading event occurs before the form is unloaded; that is, separated from its data source.
The Before update event occurs before the control content changed by the user is written into the data source. The linked macro can, for example, prevent this action by returning FALSE.
The After update event occurs after the control content changed by the user has been written into the data source.
The Prior to reset event occurs before a form is reset. Returning True approves the reset, returning False cancels the operation.
A form is reset if one of the following conditions is met:
The user presses an (HTML) button that is defined as a reset button.
A new and empty record is created in a form that is linked to a data source. For example, in the last record, the Next Record button may be pressed.
The After resetting event occurs after a form has been reset.
The Confirm deletion event occurs as soon as data has been deleted from the form. Return True to allow row deletion, False otherwise. For example, the linked macro can request confirmation in a dialog.
The Error occurred event is activated if an error occurs when accessing the data source. This applies to forms, list boxes and combo boxes.
The Fill parameters event occurs when the form to be loaded has parameters that must be filled out. For example, the data source of the form can be the following SQL command:
SELECT * FROM address WHERE name=:name
Here :name is a parameter that must be filled out when loading. The parameter is automatically filled out from the parent form if possible. If the parameter cannot be filled out, this event is called and a linked macro can fill out the parameter. Return True when the execution of the parametrized statement should continue, False otherwise.
The When loading event occurs directly after the form has been loaded.
The When reloading event occurs directly after the form has been reloaded. The data content has already been refreshed.
The When unloading event occurs directly after the form has been unloaded; that is, separated from its data source.
Macros can interrupt event execution when they return a boolean value: True allows the execution of the event to continue and False stops the event execution.
The following events are interruptable by returning False:
Before record action
Before record change