简体   繁体   中英

How to keep MS Access Forms only in the MS Access Window/Canvas?

I have created my MS Access Program but I have multiple monitors and so do the other people who will be using the program.

Just so you know my forms are popup style, have no borders or record selectors and I am guessing this is where my issue comes in.

I would like to know if there is a way to ensure that when a user opens a form, the form will only open within the MS Access Window/Canvas on the active monitor?

I would also like to know if there is a way for my application to automatically adjust according to the users screen resolution?

As an example my Forms open perfectly when I am using the application on my main screen which has a resolution of 3840 x 2160 but if I open the application on my second screen which has a resolution of 1920 x 1080 the forms that open subsequently, such as the user form, then opens on the main screen so small that no one can read or see it.

Application is on Right monitor and User Form is Open on Left (Main) Monitor

The code I have used for the OnOpen Event is below:

Private Sub Form_Open(Cancel As Integer)

    Dim Right As Integer, Down As Integer
    
    Right = Screen.ActiveForm.WindowLeft
    Down = Screen.ActiveForm.WindowTop
    DoCmd.MoveSize Right, Down
        
End Sub

This was obtained from some research but I cant seem to bind everything to the Application Window/Canvas.

Thank you.

Well, if you only ever have one window open at one time, then you can do this with ease.

Remember, today most applications are SPA (what we call single page applications). We don't use (nor have) very often a main applcation window, and THEN a child window. For one, they tend to not be touch friendly, and it is VERY hard to move a window around with touch.

but, even desktop browsers even use some "kind" of tabbed interface. And so do most desktop applications. And by tabbed - I don't necessary mean across the top. This access screen shows a tab system from the left side:

在此处输入图像描述

So, Access now has a option to use tabbed interface.

And if you:

do NOT use pop windows.

Set access to use tabbed interface, eg this:

在此处输入图像描述

Then un-check the display tabs.

If you do above, then you WILL NEVER EVER see the access background window.

You see this:

在此处输入图像描述

However, keep this in mind:

The form you launch will re-size to the main size of the Access window - not the other way around.

All forms can't be popup

You are "SPA" like applcation.

So, most accounting and most desktop applications now work this way. And WHEN you launch a form, the window does not re-size tot he form, but remains the current applcation window size.

So, without ANY specials code, you can 100% hide the access background window.

And if you re-size the access application window, then the form will re-size to fill out the current form.

This might look quite bad in some cases - such as this:

在此处输入图像描述

Now for above, I on purpose made the form background green - just to PROVE and show that that Access background window NEVER will display with above options.

So, the main issue here?

You can 100% hide the access background window. And you can now do this WITHOUT specials code. Just a few settings.

On startup, you can hide the ribbon - or build a custom one - again your choice.

But, your forms MUST NOT be popup forms anymore.

So, hiding the access background window is very easy - it then becomes a question of form size - size forms re-size to application window size - not the other way around.

On the other hand, if you adopt a tabbed interface (accross the top or left side), then your main window is always in display, and you are in effect swapping out the form (a sub form) for display of that given form. You can write your own code, or use a new navigation form - which does this for you).

If you need to launch separate windows, then you could launch them as popup from this main form - but that main form will of course always hide the access background if you follow above.

If you wish to hide the ribbon, then on your main form - load event, you can add this code:

DoCmd.ShowToolbar "Ribbon", acToolbarNo

So, your main form (which hides access background) could be tabbed inteface (SPA) or it could be a launcher form, and each option clicked on could launch a form as popup - which can be dragged anywhere on your computer - including to the 2nd monitor if you wish.

So, either forms stay always in the main applcation window - but never see the background. Or you use above, and launch forms as popup.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM