Forewarning. This is a very general question, though I will explain what I'm working on, to give as much context as possible. I'm looking for different ways people are handling the need to have the ability to jump back and forth and all over to different forms in an application - basically the challenge of good form navigation practices.
I have an application, which is a SQL back end, and Access 2010 front end, This app is one where a user can go, from the main menu, to a projects form. We have another system with all projects ever done, or currently being worked on. This application will allow users to add one or more of those (100,000 + ) projects to this system. Each project has many sub projects, and each sub project can have multiple project plans (of different types of plans). The project plans are the real meat, but that's not where my current challenge is taking place.
Project Proposals
Projects
Sub Projects
Project Plans
From Projects -
Find Projects
Add Projects to system
Right now I'm dealing with the projects interface. When a user opens that form, the detail is not visible, until they pick a project that they want to view. There is a combo in the header, with all the project names and numbers, which are currently in the system. The issue is, that it's becoming too long for users to be able to find the one they want to view. Part of the issue, is that they want to be able to type any part of the name, not just the beginning.
I researched the ways to allow a search in string with a combo, and it's not directly possible. It takes work around and with that info being tied to another system, the refresh is too slow. That made me move instead towards putting a button in the header, for "find system projects". This opens a pop-up form, for the user to type in a text box. A listbox has all projects and will filter based on what they type in the text box. This seems like a much more effective way to allow a use verify which projects are in the system currently, while allowing the user to search any part of the project name or project number.
Also on the main projects form is a button for adding projects to the system. Here is where we get into a bit of a complicated sticky wicket. If the user goes to the pop-up form to add a new project, or they go to the pop-up form to find projects in the system, they might want to jump to the other form (find or add), instead of having to close the pop-up they are on, be returned to the main projects form, and then go to the other form. This presents a navigation challenge. If someone goes a form, and it's a pop-up form, I don't close the previous form, I make it .visible = false. This way, it is still loaded, and I can check if certain forms are still loaded, to know where they came from.
So how do I make sure the user can jump back and forth, and be able to know where they came from, where they started, and what forms to offer for them to go to next? I'm just thinking there are probably good ways to handle this, and I'm looking to gain some expertise on the best ways to handle this, that won't require a bunch of custom code. I want a good universal approach, that can be implemented in other modules and sections with ease. Something that is repeatable.
I'm including a picture to illustrate top level the forms described above, and the navigation. The boxes are forms, and the arrows are the navigation back and forth between the forms. I circled the ones I'm trying to figure out how to handle in a way that can be replicated to any similar back and forth in other modules in the application.
I mean, I can just put buttons in the footer for the other 2 forms and always have the ability to go to the one you want, regardless of where you came from, but knowing where they came from, can tell me about what they are doing and if they might want to take info with them, to the next form.
For instance, if a user adds a project, they might want to go back to the projects form and view that project. In that case, I'm not just navigating back there, I'm setting the project form's record source to filter to that record. Same with the find projects form.
Let me know if that makes sense. I'm just looking to see if anyone has figured out a cool repeatable way to manage this in Access forms. I'm a fan of public functions that I can re-use again and again and just supply 1 or a couple of parameters (like form names, captions, etc)
I have been flushing out this list, to help me identify what buttons I need for each form, if I'm going to explicitly put every button on every form. Some already exist and some need to be created. Some cause the form we are coming from (ie the one we are leaving) to be hidden, others to close that form. I am going to have to change a lot of code to address this, so I wanted to get advice from smart people before I settle on a plan.
here is a pic of that list:
Thank you for any who take the time to read this post and to give me any helpful thoughts.
I have an application, which is a SQL back end, and Access 2010 front end, This app is one where a user can go, from the main menu, to a projects form. We have another system with all projects ever done, or currently being worked on. This application will allow users to add one or more of those (100,000 + ) projects to this system. Each project has many sub projects, and each sub project can have multiple project plans (of different types of plans). The project plans are the real meat, but that's not where my current challenge is taking place.
Project Proposals
Projects
Sub Projects
Project Plans
From Projects -
Find Projects
Add Projects to system
Right now I'm dealing with the projects interface. When a user opens that form, the detail is not visible, until they pick a project that they want to view. There is a combo in the header, with all the project names and numbers, which are currently in the system. The issue is, that it's becoming too long for users to be able to find the one they want to view. Part of the issue, is that they want to be able to type any part of the name, not just the beginning.
I researched the ways to allow a search in string with a combo, and it's not directly possible. It takes work around and with that info being tied to another system, the refresh is too slow. That made me move instead towards putting a button in the header, for "find system projects". This opens a pop-up form, for the user to type in a text box. A listbox has all projects and will filter based on what they type in the text box. This seems like a much more effective way to allow a use verify which projects are in the system currently, while allowing the user to search any part of the project name or project number.
Also on the main projects form is a button for adding projects to the system. Here is where we get into a bit of a complicated sticky wicket. If the user goes to the pop-up form to add a new project, or they go to the pop-up form to find projects in the system, they might want to jump to the other form (find or add), instead of having to close the pop-up they are on, be returned to the main projects form, and then go to the other form. This presents a navigation challenge. If someone goes a form, and it's a pop-up form, I don't close the previous form, I make it .visible = false. This way, it is still loaded, and I can check if certain forms are still loaded, to know where they came from.
So how do I make sure the user can jump back and forth, and be able to know where they came from, where they started, and what forms to offer for them to go to next? I'm just thinking there are probably good ways to handle this, and I'm looking to gain some expertise on the best ways to handle this, that won't require a bunch of custom code. I want a good universal approach, that can be implemented in other modules and sections with ease. Something that is repeatable.
I'm including a picture to illustrate top level the forms described above, and the navigation. The boxes are forms, and the arrows are the navigation back and forth between the forms. I circled the ones I'm trying to figure out how to handle in a way that can be replicated to any similar back and forth in other modules in the application.
I mean, I can just put buttons in the footer for the other 2 forms and always have the ability to go to the one you want, regardless of where you came from, but knowing where they came from, can tell me about what they are doing and if they might want to take info with them, to the next form.
For instance, if a user adds a project, they might want to go back to the projects form and view that project. In that case, I'm not just navigating back there, I'm setting the project form's record source to filter to that record. Same with the find projects form.
Let me know if that makes sense. I'm just looking to see if anyone has figured out a cool repeatable way to manage this in Access forms. I'm a fan of public functions that I can re-use again and again and just supply 1 or a couple of parameters (like form names, captions, etc)
I have been flushing out this list, to help me identify what buttons I need for each form, if I'm going to explicitly put every button on every form. Some already exist and some need to be created. Some cause the form we are coming from (ie the one we are leaving) to be hidden, others to close that form. I am going to have to change a lot of code to address this, so I wanted to get advice from smart people before I settle on a plan.
here is a pic of that list:
Thank you for any who take the time to read this post and to give me any helpful thoughts.
