(If this would belong better over in the "Forms" area, feel free to move it.)
I'm a real newbie to Access, who grasped the possibilities of a relational database last fall and said, "Ooh! That's what I need to organize the data for my dissertation!"
After working on creating a database for more weeks than I would like to count, I have discovered this afternoon that I might not have understood those possibilities correctly. Or that it may take a lot more effort, or an entirely different approach, to get Access to do what I have envisioned.
The problem:
I am creating an architectural catalog, using my database as a way to enter detailed information about different types of buildings, parts of those buildings, and things found in and around those buildings. A (simplified) example of the kind of structure I wanted to achieve, using one-to-many relationships for each master to child:
Portico (Master)
--> Rooms (Child to Portico)
-------> Columns (Child to Rooms)
-------> Drains (Child to Rooms)
-------> Finds (Child to Rooms)
-------> Sculpture (Child to Rooms)
--> Columns (Child to Portico)
--> Drains (Child to Portico)
-------> Finds (Child to Drains)
-------> Sculpture (Child to Drains)
--> Finds (Child to Portico)
--> Sculpture (Child to Portico)
--> Some more fields unique to Porticoes
CultStructure (Master)
--> Rooms (Child to CultStructure)
-------> Columns (Child to Rooms)
-------> Drains (Child to Rooms)
-------> Finds (Child to Rooms)
-------> Sculpture (Child to Rooms)
--> Columns (Child to CultStructure)
--> Drains (Child to CultStructure)
-------> Finds (Child to Drains)
-------> Sculpture (Child to Drains)
--> Finds (Child to CultStructure)
--> Sculpture (Child to CultStructure)
--> Some more fields unique to CultStructure
I would then have one Main form that would pull all of these buildings together, as well as adding information unique to the Main form, like so:
Main
--> Portico
--> CultStructure
--> Some more fields unique to Main
Eventually, I want to use Reports to analyze and collate all of this data quickly, which is why I haven't just dropped the project and gone back to using notecards.
I set up all my relationships (across 25 tables, each with a single associated form). I then dragged and dropped forms into other forms to create subforms (and thereby subsubforms), relying on all my elaborately and carefully constructed one-to-many relationships to keep everything in order. When I first tried to enter data into my forms, Access freaked out and gave me an error about not being able to open any more databases. I then drastically simplified the structure in an attempt to isolate the problem, and reduced the whole thing to 3 one-to-many relationships, as follows:
Ancillary (Master)
--> Rooms (Child to Ancillary)
------> Columns (Child to Rooms)
--> Columns (Child to Ancillary)
At this point, when I tried to enter data in either the Columns subform (Child to Ancillary) or the Columns subsubform (Child to Rooms), I got this error: "You cannot add or change a record because a related record is required in ___" (either Ancillary or Rooms - wherever I was not attempting to enter data). I figure this is because Access wants Columns to be linked to a record in both Ancillary AND Rooms, when I just want it to be linked to Ancillary OR Rooms (which is then linked to Ancillary or to another table like Portico or CultStructure).
My questions:
1) Is the kind of structure I outlined originally even possible? And if so, how do I get it to work?
2) If it isn't possible to have a table that is both in a many-to-one relationship with Child table A and in a many-to-one relationship with the Master table of Child table A, what would be the best way to approximate that? Creating duplicate tables for each sort of relationship seems terribly inelegant, but at this point I'm getting desperate (and will need to show my committee that I've been doing *something* pretty soon).
I've had several people (including the person who convinced me that a database was the way to go) take a look at what I'm trying to do and throw up their hands at the complexity. I would be very grateful for any suggestions.