Options I am aware of:
1. autoexec macro
2. VBA in event procedure of another form
DoCmd.OpenForm "form name", , , , , acHidden
3. custom ribbon code can call VBA procedure in general module - example:
following is VBA procedure
Code:
Sub OnRibbonLoad(ribbon As IRibbonUI)
' procedure called by custom ribbon code in QATRibbon record of USysRibbons table
' QATRibbon is set as the default ribbon when database opens
DoCmd.OpenForm "Login"
End Sub
following is code in USysRibbons table
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad" >
<commands>
<command idMso="Help" enabled="false"/>
</commands>
<ribbon startFromScratch="true">
<officeMenu>
<button idMso="FileOpenDatabase" visible="false"/>
<button idMso="FileNewDatabase" visible="false"/>
<button idMso="FileCloseDatabase" visible="false"/>
</officeMenu>
<qat>
<documentControls>
<button idMso="DataRefreshAll"/>
</documentControls>
</qat>
</ribbon>
</customUI>