An alternate way to make the main database window go away on startup is to create a macro that activates on the Open Document event. The result will that the database window is open for less than a second at startup and then disappears in favor of your switchboard. The principle behind this is easy to implement, but there is bulk added to the solution to avoid some common problems and make it work automatically at startup.
First, you will need to create a new Library in My Macros. Go to Tools → Macros → Organize Macros → My Macros and click the button Organizer and then in the new dialog, click the tab Libraries. Click New and choose a name. Then in the Macro window click New to add a Module to the library. This must be the module you use. This is necessary to allow the macro to be invoked from a document-level macro.
Second, create a subroutine in the module. Here is the annotated subroutine. The key part is the SetVisible(False):
REM '***** BASIC *****'
Sub HideDBWinOpenSwitchboard
REM 'catch any error to give alternate instructions to user'
On Local Error Goto ErrHandOpenDB
REM 'if applied to the `Open Document` event `ThisComponent` is equivalent to `ThisDatabaseDocument`'
REM 'the difference being `ThisComponent` works'
tc = ThisComponent
REM 'this loop is to work around a delay in defining `ThisComponent` by LO'
i = 1
Do Until InStr(tc.dbg_properties, "CurrentController" ) > 0 Or i >= 70
Wait 5
tc = ThisComponent
i = i + 1
Loop
REM 'work around more LO limitations when atteming to run on `Open Document` event'
tc.connectController(tc.CurrentController)
tc.Title = "Title that is displayed at the top of the window and can be used in form titles"
REM 'here is the object hierarchy to get to the database window'
cntrllr = tc.CurrentController
REM 'belt and suspenders, this might not be necessary'
If cntrllr.isConnected = False Then
cntrllr.Connect
End If
REM 'more of the object hierarchy'
frm = cntrllr.Frame
appWindow = frm.ContainerWindow
REM 'make main application window disappear'
appWindow.setVisible(False)
appWindow.IsMaximized = False
REM 'FYI this is the window inside the application window, if can be resized independently'
REM 'but have not seen any use for this yet'
REM comWin = frm.ComponentWindow
REM 'open switchboard form'
FrmContainer = tc.FormDocuments.getByName("switchboard")
FrmContainer.open
rootFrm = FrmContainer.Component.getDrawPage.getForms
rootDoc = rootFrm.parent
ctrllr = rootDoc.CurrentController
frm = ctrllr.Frame
REM 'apply title of database set forth above plus title of form'
frm.Title = tc.Title & ": switchboard"
REM 'maximize the switchboard window'
frmWindow = frm.ContainerWindow
frmWindow.IsMaximized = True
REM 'FYI again here is the window inside the form window'
REM frmComp = frm.ComponentWindow
REM 'adjust zoom of switchboard'
ctrllr.ViewSettings.ZoomValue = 90
Exit Sub
ErrHandOpenDB:
MsgBox "The intro did not go as planned. Browse to `Forms` and open the `Switchboard`."
End Sub
Third, Assign the macro to the Open Document event in your document. My Macros. Go to Tools → Macros → Organize Macros: navigate to your macro and then Assign button. Assign the Macro to the Open Document event in your odb document (be aware of the list option at the bottom).
Fourth, if you have other users, you will need to distribute this Macro library to them. It is easy to do this by going to the My Macros view in the Macros window and then clicking the button Organizer..., go to the Libraries tab and click Export preferentially as a Extension.
Fifth, for any other computer using this document, install the Extension.
As you can see, this is a little more involved than many other macro operations. Also note a significant bug when working with Reports.
(if this answers your question, please accept the answer by clicking the check (
) to the left)