Hi Ray,
My presence in these newsgroups is somewhat erratic. I'm often absent
for months at a time without prior notification. The message there is
that you should look at the newsgroup(s) as your resource, not an
individual. The general rule is one issue per thread.
A book I always recommend is The Access [YourVersion] Developer's
Handbook by Ken Getz et alia published by Sybex. 2002 was the last of
the series. You only need volume 1 (Desktop). Any version from
Access 97 onward would be useful to you. All of the editions use the
Reddick naming convention and there is an appendix devoted to it.
There is an accompanying CD with all of the sample code in
mini-applications that are really great. There are lots of other
authors and other books. It's worth a trip to Barnes & Noble in a
metropolitan area - or Borders, etc. I'd shop the bookstores to scan
the shelves for Access books and see which ones speak to you. Another
great book by Getz et al is the VBA Developer's Handbook from Sybex.
If Access becomes a large part of your life, so will VBA. Of course,
VBA works in the other Office applications.
microsoft.public.access.gettingstarted and
microsoft.public.access.tablesdesign are a couple of great newsgroups
for Access newbies. I scan this one and those two every time I visit.
There are other newsgroups that address other areas.
Another fantastic resource is
www.mvps.org/access It's chock full of
Access lore and has links to more. Be sure to visit.
A word of caution: I don't know Powerhouse and probably few or none
of the others here do. So you won't get far saying something like "I
did such and so in Powerhouse, how do I do that in Access?". You have
to present your issues in real-world terms or in Access terms.
Follow a naming convention. I endorse the Reddick naming convention
documented in the Developer's Handbook. I believe it's also available
as a download from MSDN. Do not accept the names that Access will
suggest as you get into using some of the tools. Change the names
that Access gives you to ones that make sense to your users in your
application.
To get started on your schema you have to identify and list every
entity in play in your application. Even if you did the original
application, list them. I recommend that you compile that list either
in Word (probably using Outline view) or in Excel. It isn't important
initially to identify relationships or relative table importance.
They're all important.
Once you have your list of entities in hand you have identified your
tables. I usually name each table for the singular of the thing it
contains and prefix the letters "tbl": tblItem, tblPerson,
tblCustomer, tblVendor, tblOrder, tblInvoice, etc...
Next you gather and list the attributes of each entity. These become
the fields of the table. Give these attributes meaningful names and a
brief description. Do a good job here so that you design to at least
3rd Normal form. By the way, I always use Autonumber primary keys.
If you intend to follow that practice, make the first field in each
table an Autonumber datatype with a name of the table root name and
the suffix "ID": ItemID, OrderID, etc.
At this point, or even before, you can open Access, give your new
application a name and commence to design your tables.
Next comes the relationships between the tables. Some new entities
may surface as you go through this step. Keep going back to the
earlier steps and make the needed changes. As relationships are
defined, go back to the field list of the many side or "child" table
and add a field for the Foreign Key. If you are using Autonumber
Primary keys it will be a long integer datatype and will have the same
name as the Primary key of the one side or "parent" table.
Once you have your table designs entered, go to Tools|Relationships.
Bring up the tables that participate in one-to-many relationships. In
each case, click and drag from the Primary Key of the one side to the
Foreign Key of the many side (should be a field with the same name).
Doubleclick the line and a dialog box will come up to help you
complete the definition of the relationship. You should turn on
Enforce Referential Integrity and enable Cascading Deletes. That
assures that you cannot create orphan records in the many table and
that deleting the one side will delete all of the records on the many
side. Again, that prevents the creation of orphan records.
Your schema is pretty well along the way.
HTH