What's the difference!?
Well....you can learn most of what you need to know by typing either popup
in the help wizard in the VBA editor. BUT....there are some things that they don't tell you. I"ll point a few of them out here as well as reiterate some things that they DO tell you, but may be unclear to a normal human being...
WHAT IS A POPUP FORM?
it's simple. it stays on top of other MS Access windows. that's about all.
here are some things you CAN do when a popup form is open:
*1) Manipulate portions of other MS Access windows that are visible. including the ribbon menus, any custom menus, and navigation pane / database window.
*2) Use VBA code to manipulate any other open object
Items with a lower Z-Index than a popup form
*1) Any windows that appear via the buttons and options that are on the HOME and CREATE
menus in 2007 (and equivalents in earlier versions).
*2) Non-popup objects
*3) Other popup windows opened previously to the current popup form
*4) A Modal
window that has been opened.
*5) The navigation pane / database window
Items with a higher Z-Index than a popup form
*1) 2007 Ribbon Menus / Menu Bars
*2) Any windows from menus other than the ones listed in item #1 above.
*3) Other popup windows subsequently opened.
Popups are useful sometimes. Here are some good uses of them:
*1) Stop the user from clicking around at will when they're supposed to be focusing on the current form.
*2) Get the attention of the user.
*3) Indicate to a user that there is something to do with the form on screen before anything else is done.
WHAT IS A MODAL FORM?
this is not so simple, but still easy to explain. a modal form simply freezes everything else on screen except the form itself. in other words, everything on screen other than the modal form and it's children items are inaccessible (this includes the navigation pane / database window). popup objects that still appear on top of modal forms on the screen are also inaccessible, even through they're "on top"
here are some things you CAN do when a modal form is open:
*1) Manipulate the modal form
*2) Access menu bars and ribbons
*3) Use VBA code to manipulate any other open object
Items with a lower Z-Index than a modal form
*1) Non-popup objects
*2) Navigation pane / database window
Items with a higher Z-Index than a modal form
*1) 2007 Ribbon Menus / Menu Bars
*2) Any windows that appear via any menu bar option or ribbon menu item.
*3) ANY popup object, regardless of when it was opened
Modal forms are rarely useful (without being coupled with the "popup property). But, they do serve some purpose...like:
*1) Stops the user from clicking anywhere outside the modal form and having something happen on accident.
*2) when they're maximized. this plainly tells the user that something should be done with it.
USING MODAL and POPUP properties TOGETHER
in my opinion, this is by far the best option if you're gonna mess around with either of these properties at all. and here are some good reasons why:
*1) objects like this ALWAYS have the highest z-Index of all objects that are open.
*2) besides being on top, they also freeze everything else on screen, regardless of properties that are set on other objects.
*3) they are by far the best way to tell the user what to do when you have a lot of "submenus", and forms on top of forms that need to be opened to perform tasks that are buried deep inside the program.
*4) they get more attention (in my experience) if coupled with the "autoresize" and "autocenter" properties.
OTHER USEFUL INFO
*1) What the heck is a z-Index?
This is nothing more than a sort of stacking priority
that has been set by Microsoft (or someone else) that simply regulates the question: "what is on top of what?" on the screen.
*2) Using modals and popups for security purposes are pretty much useless unless you also have the following properties set: border style<>sizable, auto center=yes, control box=no, navigation buttons=no, moveable=no, shortcut menu=no
*3) If you can help it, don't open a modal form when a popup object is already open. it doesn't kill your program or machine, but it doesn't help either. during a testing period one time, I accidentally opened a modal form that was autocentered, smaller than the autocentered popup object that I already had open, and I was using an MDE file, which was pretty much the last straw. The MDE file pretty much killed all of my "outs". So....in short, afterwards I enjoyed 5 seconds of perusing the task manager and then 1 second of hitting the "end process" button.