"Best Practices" question related to Popup Menu and Page Panels

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,
Bill

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
End if

rb = New rbServer

rb.top = iTop
rb.Left = iLeft
rb.Caption = ServerNames(i)

Next[/code]

Thank you Peter, that would work quite well since the number sub-tribes associated with each tribe would be pretty small.

thanks again