I have a function that needs to be called every time the .Requery() method or F5 key is pressed. Since I'm currently buffering all VBA database input (for calculating stuff like users, some advanced database relations, whether some stuff are done, processing automatic filling from a 'New' user (Literally all users have an item in a main table (tbl_Cursisten), which have modules (tbl_Cursistenmodules). Every module has a subtable called tbl_Onderdelen. Every tbl_Onderdelen item is linked to it's original item (for referencing original records from the 'New' user) using tbl_Originelen. Also every tbl_Cursistenmodules is linked to an entry in tbl_Modules having basic standard information about the module.

So:
tbl_Cursisten -> tbl_Cursistenmodules
tbl_Cursistenmodules -> tbl_Modules & tbl_Onderdelen
tbl_Onderdelen -> tbl_Originelen (Link to the original record, from which we are a (partial) copy)
tbl_Originelen -> tbl_Onderdelen (The link of the current record to it's original record (the 'New' user record of the item))

I have some VBA modules containing code for some advanced tasks:
- func_formisloaded: contains formisloaded(fmlname) for checking if the form is opened by the user and isset(var) for checking if a variant variable is unset (against NULL pointers etc.).
- func_recordsets: the actual core that handles all the buffering of records (it loads the records once from the database, keeping it in static variables until the query expires (the time can be set using loading parameters, setting a clear parameter to TRUE clears all loaded queries, allowing for requeries when needed))
- func_Rapporten: Things that are executed when a report is opened (clearing the buffered records in func_recordsets).
- func_Schakelbord: Contains the switchboard rendering (adjusting the background (left and upper coloured bars which are normally fixed height in access (causing empty space below and to the right when the form is bigger than the height of the bar) to the height/width of the form).
- func_Vakkenfuncties: Handling all special input/output to the database:
-- new cursist id.
-- generate new modules from new cursist.


-- generate new module subitems (tbl_Onderdelen and links to original records in tbl_Originelen)
-- getmoduleklaarres: Saves results from getmoduleklaar till it's cleared with parameter action=0. Works in about the same way as the func_recordsets.
-- moduleKlaar: gets all modules that are fully done (the items in tbl_Onderdelen relating to the specified module, field klaar (done in english) combined with the existance or nonexistance of items in tbl_Onderdelen gives three results: 0=No items, 1=Fully done, 2=Partially done. This is used to do some background on the records to see if a module is done or not (0=Red, 1=Green, 2=Blue). So when it's red the users still needs to click the button to add all items from the 'New' cursist. Blue when there are items, but not all are done. Green when all items are done (all subitems are checked).


I need to clear all buffered data when the form receives a Requery in any way (user pressing F5, reopening the form or calling a .Requery() from VBA (probably the result of a subitems being changed, so when a subitem is unchecked or checked the background color might have to change)), so that the data that's buffered in getmoduleklaarres can be cleared (Which is nothing more than a simple call to getmoduleKlaar with parameter false instead of the module id.

I've tried the Form_Requery, but it seems it isn't called. Anyone knows what to use for this? Form_Load only seems to be executed when the form is opened, but not on requeries from any source?