25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more...
Home   Projects   Up   Sitemap   Search   Blog   Forum+Chat   About Us   Privacy   Terms of Use   Feedback   FAQ   Images   Services   Payments   Humor   Music

Family History Genealogy Microsoft Access Database

FAMHIST.MDB is a genealogy (family history or family tree) database that stores information about your ancestors and the relationships among them. It has a form that allows you to easily navigate up and down generations and across spousal relationships (i.e. from one side of the family to the other).

Its tables are:

People - fields for information about each person:

WhoID		Unique ID. Full initials, plus a number if required.
		Used for linking records to each other.
Father		The WhoID of father.
Mother		The WhoID of mother.
First		First name
Middle		Middle name(s) (enter all that are known)
Last		Last name
Suff		Jr. etc.
Sx		M or F
Gen		Generation 
		(Assigning someone born around 1800 to Generation 100 works well)
BMonth		Month of birth
BDay		Day of birth
BYear		Year of birth
BWhere		Place of birth
DMonth		Month of death
DDay		Day of death
DYear		Year of death
DWhere		Place of death
Buried		Place of burial
Memo		Additional info about this person. 
		It can hold very long text, entire articles.

Marriages - links two people from the People table to create a marriage:

MMonth		Month
MDay		Day
MYear		Year
MWhere		Place
Memo		Additional info about this marriage.

Downloads

There is sample data in the database tables, which you can use for experimentation. Delete the sample data before entering your own:

  1. Open the Marriages table so you are viewing its data (not its design), in spreadsheet view.
  2. Select all the records: Ctrl+A
  3. Delete all the records: press the Delete key
  4. Do the same for the People table.
Download links Descriptions
US$4.00 (61 KB)
Full version for Access 2003, Windows XP, or later. The Visual Basic code is viewable and editable, so you can modify every aspect of the database, including the coding, however you want.

After you make your payment at PayPal: If you paid from within your PayPal account, PayPal should automatically redirect you to the download page for the zip file. If you pay with a credit card (without a PayPal account), you may need to click a "Return to Merchant" button at PayPal to continue to the download page.

If you cancel the transaction at PayPal with their "Return to..." link, you will return to this page you are reading now.

famhistmdb-access2003-free.zip (56 KB) Free version for Access 2003, Windows XP, or later. This free version of the database allows examining the tables to see if they provide the types of data fields and formatting you are looking for. It does not have the Visual Basic code that gives the BrowsePeople form its button-click navigation functionality.
famhistmdb-access20.zip (87 KB) For Access 2.0, Windows 3.1

Related project:

The Microsoft Excel personal history calendar / diary project could be used to store and lay out descriptions of significant events for people in your family tree.

Screenshots

The BrowsePeople form is easy to use but complex in its design, and has some examples of Access Basic (Access 2.0) / Visual Basic code. It uses (and therefore provides examples of how to use): source queries, subforms, buttons that launch subroutines, and calculated fields that use domain lookup and other functions. The most recent version (2010) has been modified to use an Arial 10 font instead of the less readable MS Sans Serif 8 shown in these screenshots.

Screenshot of the BrowsePeople form with some data in it

The same form in Design View:

Screenshot of the BrowsePeople form in Design View

 

Notes on the family history database

Macros disabled

Depending on the Microsoft Office macro security settings you use (I always recommend high security), when you open the database, you might get these warnings. The links give explanations:

  1. About my digital certificate with which I sign Microsoft Office projects.
  2. About opening the Utility.mda module that is part of Microsoft Access but always generates a warning anyway.

Using the database

Browse the database with the BrowsePeople form. It displays one record (a person), with their parents, spouse or spouses, and children shown, with buttons that allow you to navigate to any of the parents, spouses, and children you choose. Another button (currently disabled, however) opens and searches famhist.doc for references to the person in the active record, and can be modified to search any other database or document file for photographs, references to artifacts, etc. That button is disabled in the Access 2.0 version because the code requires some simple modifications before you run it. It is disabled in the Access 2003 version because the 2.0 methods don't transfer properly to 2003, and they need rewriting.

Entering data

Data entry is most easily done through the forms. The entry procedure is not very well automated, and it would be difficult to automate it because of the interdependencies among the records in the database. It is easiest to begin entry with the earliest generation and work forward to the present time. This is because two of the fields you enter for a person are the parents, and it's easiest if they are already in the database.

Procedure to enter a person:

  1. Open the BrowsePeople form, and enter data for the person. Enter the codes for the parents, if known, using the dropdown boxes provided.
  2. If the person was married, also enter the spouse into the BrowsePeople form.
  3. Then switch to the EditMarriages form, and create a marriage between the two people.
  4. Then switch back to the BrowsePeople form and enter their children.
  5. Repeat until you run out of people.

The AutoExec macro, if you enable it, will open both the BrowsePeople and EditMarriages forms on startup because you'll be switching between them frequently.

Reasons for the .MDB format

A database format is the only one flexible enough to accommodate new facts.

In spite of their apparent desirability for presentation or other purposes, I've rejected all of the following alternative formats because although they would look great, adding a new person or new information would require readjusting the entire document:

  • XLS (boxes aren't staggered so as to fan out by twos, and would be miserable to readjust),
  • MSWord Outline View (which can be output as an organizational chart),
  • C++ program (too involved),
  • RTF/HLP file format would be terrific for "final" presentation if laid out like the OWL class hierarchy diagram (a bitmap with hot spots), but it is prohibitively inflexible, especially because the database is never truly finished,
  • HTML web page format with hypertext links would be even better, but, again, only for the impossible "final" presentation.

One advantage of a database format is that it lends itself to distributed access and editing through something like Windows Sharepoint services, so it could be stored in a central location like a website and everyone in a family could edit it on the internet.

It should be possible to use the MDB to create (with some difficulty) any of the other formats, a process that would not work in reverse.

Creating a lineage chart or family tree

No method is easy, and the final step is always a graphic design and layout problem.

  1. You can use the ChartExportData query to copy its data to an MSWord document based on drawing.dot. See the query's properties table. A lot of work, but the output could be acceptable.
  2. Or print all the people onto mailing labels, then stick the labels onto a big sheet of paper, laid out as needed.

 

Valid HTML 4.01 Transitional Valid CSS
Yahoo! Search
Search the web Search this site
View content labeling at ICRA.
Copyright ©2010 Steven Whitney. Last modified 04/23/2010.