Having recently done quite a bit of work in FileMaker, I have a question about how best to show the user a fairly large but not enormous number of options for selecting the data to go into a field. Specifically, I am working on an American History project where I need to associate an Native American’s individual record with the particular Tribe AND Subtribe they are a member of. Example would be Lakota Tribe and Oglala Subtribe. I have a Tribe table with all (most) Native American Tribes and an additional table with the Subtribes.
I have a foreign key field in the individual’s record to link to the tribe and I have considered 2 alternative ways of presenting these to the user. The first would be to use Page Panels and just have a listbox populated with all of the rows from the Tribe table on a page that is shown when they click the select button. The second would be to populate the values of a Popup Menu with the Tribes.
What would be the most efficient/preferred method to do this? I mentioned FileMaker because it is very easy to populate a value list from all the rows in a table to present the user.
Thanks in advance,
The preferred way is what works for your UI. Another option would be to have the user select the Tribe and have a dynamic list of radio buttons to select the Subtribe. You can do that pretty easily using a control set. Here is some code I use to load a list of servers in a restaurant pos system. There is a groupbox with a single radiobutton “rbServer” set up as a control set. I have an array of server names which is built using a query when the app launches. It is a multicolumn list so there is some extra calculating going on for that. In your case you would delete the exisiting list and repopulate based on your subtribe query.
[code] Dim i, count , iTop, iLeft, reset, colCount As Integer
Dim rb As RadioButton
reset = 15 ’ number of servers per column
count = ServerNames.Ubound
iTop = rbServer(0).Top
iLeft = rbServer(0).Left
rbServer(0).Caption = ServerNames(0)
For i = 1 to count
colCount = colCount + 1
iTop = iTop + rbServer(0).Height + 10
If colCount mod 14 = 0 then
iLeft = iLeft + rbServer(0).Width + 10
iTop = rbServer(0).Top
rb = New rbServer
rb.top = iTop
rb.Left = iLeft
rb.Caption = ServerNames(i)
Thank you Peter, that would work quite well since the number sub-tribes associated with each tribe would be pretty small.