Experts:
I need some assistance with, I believe, modifying one form's (or multiple forms') **pop-up** and **modal** properties.
Attached are two (2) sample database:
1. Folder "01 Before Process Migration" (contains backend and frontend)
2. Folder "02 After Process Migration" (contains backend and frontend)
Before I go any further, I first must give credit to MS-Access expert Colin (Mendip Data Systems) who provided a perfect solution for an automated shut-down routine. Ultimately, this shut-down routine allows the DB admin to "kick out any users" in the event of essential DB maintenance. More info about Colin's process can be found at: https://www.access-programmers.co.uk.../#post-1546375
That said, allow me to provide a step-by-step guide which shall allow you to follow my current dilemma (issue).
Scenario for the "01 Before Process Migration" (works as designed):
1. Open the DB "Backend". Then, open "T903_Admin_DB_Kickout" and ensure the boolean value [Kickout] is FALSE (i.e., not checked).
2. Open the DB "Frontend" via CTRL-Shift. Then, **re-link** the table "T903_Admin_DB_Kickout" (in backend) to the front-end.
3. Close/re-open the frontend and open normally (without CTRL-Shift). Start-up form "F105_N1S_LogoutTimer" should be displayed.
4. Check "Kick out N1S Database User". Then click "Execute".
5. At this time, you'll get a warning message (F105_N1S_LogoutStatus). You can either click "Ok" or "Quit".
5a. Now, if you click "Quit", Access will completely shut down.
5b. Alternatively, if you click "Ok", the form "F105_N1S_LogoutStatus" will disappear; however, it will re-appear after 30 seconds. **
**: Note: In my actual DB solution, I will have the form re-appear every 60 seconds. For testing purposes, however, I changed the interval to every 30 seconds.
6. Now, the user can continue to either click "Ok" and have the form keep on disappearing/re-appearing until timer reaches 0:00. Then, the session is terminated.
Again, allow me to re-iterate. This solution was provided by Colin and it works perfectly. I merely customized the form layout (colors, images, etc.) to better mimic my organization.
So far so good... now, I migrated these three (3) forms into my database. Next, allow me to provide some additional background first before providing the steps which ultimately result in my dilemma/issue.
Note: As I have a different startup screen, the Load commands had to be slightly changed. Ultimately, after having logged into my database, the shutdown process works exactly the same as in the "Before" example DB.
Scenario for the "02 After Process Migration" (works as designed but has issues at one point in the process):
1. Just liked in the "01 Before...", ensure the boolean value in T903_Admin_DB_Kickout" (in backend) is set to FALSE.
2. Open the DB "Frontend" via CTRL-Shift. Then, **re-link** all four (4) tables in backend to the front-end.
3. Close/re-open the frontend and open normally (without CTRL-Shift).
4. You will be prompted enter credentials in the login form. Select "Doe, John"; enter "admin" for the password.
5. Now, at this time, you will see the "Welcome to the ... Database" main menu.
6. For testing purposes of the Shutdown process, let's focus on two shortcuts in listbox "Forms" and listbox "Admin".
6a. Listbox Forms: "View Staff Members"
6b. Listbox Admin: "System Maintenance (Kick Out DB Users)"
7. Now, if you click on "View Staff Members" another form (i.e., "F121_N1S_StaffmemberList") will pop up.
7a. From here, click on the "Open" hyperlink to the left of each staff member's lastname.
7b. Having clicked "Open" will bring up a secondary form "F122_N1S_Staffmember".
7c. Note: The process 7a &7b (bring up listform; then open up individual form) is utilized for other scenarios (jobs, organizations, etc.) throughout my actual DB, so I do NOT want to bring up the individual staff member form directly from the hyperlink.
Process "Alpha" -- this one works great!
- Click on "System Maintenance".
- Check "Kick out N1S user..."; then click "Execute" and click "Ok".
- Do nothing and wait up to 30 seconds.
- The form "Warning" (F105_N1S_LogoutStatus) re-appears after up to 30 seconds.
- Click "Ok" again... the forms disappears again. So far so good!!
- Now, click on "View Staff Members".
- Do nothing and wait up to 30 seconds.
- The form "Warning" (F105_N1S_LogoutStatus) re-appears after up to 30 seconds.
- Click "Ok" again... the forms disappears again. So far so good!!
- If I keep doing this, eventually I reach timer = 0:00 and the DB shuts down. Great... everything works as expected!!
Process "Bravo" -- this is where I need some help:
- First, follow steps 1-4 under the scenario "02 After Process Migration" (i.e., uncheck the boolean value in the table). Otherwise, a "lock form" is presented during log in.
- You're now back on the main menu.
- Again, select "System Maintenance" and execute the shut-down procedure.
- Click on "View Staff Members".
- Before 30 seconds pass though, click on "Open" of any stafff member.
- Wait up to 30 seconds.... now, the warning form should, again, re-appear within 30 seconds (while, e.g., looking at "Clint Eastwood" form details).
- ****Here's the problem now:**** I CANNOT click on either "Ok" or "Quit". That is, even though the warning form sits in front of the staff member form, the two commands button cannot be clicked.
- Only when I close the form F122_N1S_Staffmember (behind F105_N1S_LogoutStatus) will the two command buttons become clickable.
In summary, having the two command button NOT clickable will be counter-intuitive/confusing to the user. I can image that many users not know what to do and ultimately let the time run out. This, however, is an issue given that
the warning form suggests "Please finish your work..." (well, some of them can't because they may not know how to get rid of the warning message).
All that said, here's my question: Does anyone know how to modify the pop-up/modal properties of any involved form (in this process) so that the two command button will be active when in front of form "F122_N1S_Staffmember"? Alternatively, if the VBA needs to be modified, do you know how?
Lastly, I will re-iterate that Colin's example works great! However, once implemented into my DB, my process is throwing somewhere a curveball. I spent several hours on this issue but it appears I'm stuck.
I apologize for this lengthy post but I wanted to illustrate the scenarios in detail IOT "help you, help me".
Cheers,
Tom