Compileren is een actie die je uitvoert in het VBA venster van de database. Je doet dit bij databases waarin (veel) code wordt gebruikt, en het is een handeiling waarbij alle code wordt gecontroleerd. Zit er ergens een fout in, bijvoorbeeld doordat je in een procedure verwijst naar een niet-bestaand object op een formulier, dan stopt de code (het compileren) daar zodat je de fout kan herstellen. Of de foute code kan verwijderen, wat natuurlijk eook een vorm van herstellen is. Databases die perfect, dus zonder meldingen, door het compileren komen zijn in ieder geval technisch in orde. Een database die bij het compileren fouten genereert, is dat dus niet.
Dat wil niet zeggen dat de gevonden fout(en) de juiste werking van de database tegenhouden. Dat kán dus wel, als de fout op een actief gebruikt formulier zit. Maar als je een formulier maakt en dat later niet meer gebruikt, en daar zitten dan een paar fouten in, dan komt het compileren die fouten dus wel tegen. Ik heb vaak gemerkt dat een database soms hele rare problemen geeft. Dan gebruik je bijvoorbeeld de functie Date() in een query, en dan werkt de query niet, en aan de query zie je dan helemaal niks, en daar zit dan ook geen fout in. Vaak blijkt dan dat bij het compileren er een paar fouten in de db zitten, die doorgaans niets met de functie Date te maken hebben. Na het oplossen van die problemen doet alles het dus weer perfect, ook die functie Date() in de query. Een wonderlijk verschijnsel als je mij vraagt, maar alleen daarom al compileer ik mijn db's dus regelmatig. Ik maak uiteraard ook meestal alleen db's waarin veel geprogrammeerd wordt, dus alleen daarom al moet ik regelmatig compileren.
Compileren (<Alt?+<F11>, dan <Foutopsporing>, dan <db compileren>) is niet hetzelfde als de knop <Database comprimeren en herstellen>. Die kun je sowieso altijd wel gebruiken om de database zo klein mogelijk te houden. Met deze knop worden alle transacties die in de database worden opgeslagen definitief verwijderd. En mogelijke fouten in de db dus hersteld.