You asked, we listened! It’s just the nature of shipping software in a “services world” with Office 365: When we hear your feedback, we can respond with new features that fill your needs. In the case of Access 2013, we heard loud and clear from our first Access 2013 web app users that we needed to implement Cascading Controls as a part of our custom web app feature set.
It used to be a 3-year wait for new features in Office. However, because we are increasing the speed of our ship cycles, we are proud to announce that as of now, Cascading Controls are available to all of our Access 2013 Office 365 customers! The changes are on the server side which means you do not need to update your Access client program at all. This update is available immediately for customers using Office 365 with Access Services so look for this feature within your web apps and try it out.
How do Cascading Controls work?
It’s a common scenario. The app developer wants to make the options in a control, such as a dropdown, relevant to the option chosen from a different control. For example, you might want to associate company names with people names in a business contact database, or maybe you’d like to connect the make, model, and trim level for cars in a product database. These scenarios are now possible in Access 2013 custom web apps for SharePoint for Office 365 users.
Consider the following scenario of an app tracking a consultant’s projects. When entering a new project, you want to choose a company for whom the project will be completed and the contact for that project at that company. If you have lots of contacts at different companies in the app, you might want to see only a list of the contacts at that specific company. To enable this scenario, use a List Details or Blank view that has more than one combo box or autocomplete control. In the following screenshot, you can see a sample List Details view of a Projects table.
In this case, the Company autocomplete control will be the parent control and the child control will be the Contacts combo box. Note that the parent control can be an autocomplete or a combo box control, but the child control must be a combo box. For the child control, click the Data callout to see the list of properties available for the control. When you specify a Row Source (can be either a table or a saved query) for the control, additional properties appear, including a property called Parent Control. In the following screenshot, you can see the new Parent Control property at the bottom of the property list.
The dropdown list for the Parent Control property will display only the names of autocomplete and combo box controls defined on the current view. Select the control you want to be the parent from the dropdown list. In the example screenshot below, we selected CompanyAutoComplete. After you select the appropriate control for the Parent Control property, Access displays an additional property called Related Field. Select the field from the dropdown list on this property that serves as the “linking” element between the parent and child controls and Access will take care of the rest.
When you view your web app within your browser at runtime, Access Services disables the child control until you select a value from the parent control. In the following screenshot, you can see that the Contact combo box initially is not an active control.
After you select a value from the Company autocomplete control, Access Services activates the Contact combo box, filters the list to only display those contacts associated with the Company in the parent control, and then allows you to select an appropriate contact. If you select a different value from the Company autocomplete control, Access filters the Contact combo box again to only display those contacts associated with the new value in the Company autocomplete parent control.
We hope you enjoy this new Cascading Controls feature within Access web apps for SharePoint that opens up more scenarios for your custom web apps built on top of Office 365. Give it a try and let us know what you think!