Trees in Access
Nov. 1st, 2008 02:14 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Does anyone know how to implement a tree structure in Access?
As I mentioned, I want to organize my keywords into a tree, so that (e.g.) the keyword "Location" has children such as "Europe", "Asia", etc., and "Europe" in turn has children "Ireland", "Great Britain", and so on. It seems that the obvious way to do this is to have each Keyword record have a "Parent" field, containing the ID of the parent keyword.
So far, so good. I want to construct a form which will show a keyword and a list of its children, and which will allow me to add more children to that list. Thus far, I haven't been able to get the latter to work. Any ideas? ("Use a different database program" will be considered only as a last resort....)
As I mentioned, I want to organize my keywords into a tree, so that (e.g.) the keyword "Location" has children such as "Europe", "Asia", etc., and "Europe" in turn has children "Ireland", "Great Britain", and so on. It seems that the obvious way to do this is to have each Keyword record have a "Parent" field, containing the ID of the parent keyword.
So far, so good. I want to construct a form which will show a keyword and a list of its children, and which will allow me to add more children to that list. Thus far, I haven't been able to get the latter to work. Any ideas? ("Use a different database program" will be considered only as a last resort....)
no subject
Date: 2008-11-01 09:09 pm (UTC)Table: PARENT_AREA
Columns: Area_Id, Name
Contents:
1,Europe
2,Asia
3,North America
Table: COUNTRY
Columns: Country_Id, Name
Contents:
1,Ireland
2,Great Britain
3,China
4,Canada
5,US
Table: Area_Country
Columns: Area_id, Country_id
Contents:
1,1
1,2
2,3
3,4
3,5
On the form, when you select "Asia" from the Parent list, run the query
select Name from country, area_country
where country.country_id = area_country.country_id
and area_country.area_id = 2;
will bring back "China" in this example
pass in the area_id that you select.
*************
Given that you have a limited number of combinations, you could simplify it by building a single table
Table: LOCATION
Columns: Area, Country
Contents:
Europe, Ireland
Europe, Great Britain
Europe, France
Asia, China
North America, USA
North America, Canada
Same concept though - when you pick "Europe" from the parent list, you run a query:
select country from location where area = 'Europe';
and it will bring back Ireland, Great Britain, France
no subject
Date: 2008-11-02 01:33 am (UTC)I think I've figured out a way around the problem; it's a little kludgy, but it ought to work.
no subject
Date: 2008-11-06 01:10 pm (UTC)Try this.
http://www.vb123.com/toolshed/00_accvb/treeview.htm
I didn't read all of it, but it sounds like what you want to do.
Thanks - Peter
no subject
Date: 2008-11-06 02:48 pm (UTC)