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 (screeenshots below) where you can click buttons to navigate up and down generations and from one side of the family to the other, editing entries as you go.

For dates, the day, month, and year are kept separate to allow for the common situation where you only know part of a date.

Its tables are:

People - information about each person:

WhoID Unique ID. You can assign these however you like.
Father The WhoID of this person's father.
Mother The WhoID of this person's mother.
First First name.
Middle Middle name(s).
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 information about this person. It can hold very long text, entire articles.

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

Husband WhoID of husband.
Wife WhoID of wife.
MMonth Month.
MDay Day.
MYear Year.
MWhere Place.
Memo Additional information about this marriage.

Downloads:

There is sample data in the database to use for experimenting. To 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

To display the Buy Now button,
please select your Access version:

Full version, US$4.00 (61KB). It is for Access 2003 only, for the reason discussed in the forum. If you want to try to get the database to work in Access 2007 or later, please download the free version for your experiments. If you cannot get the free version to work, the paid version also will not work.

The Visual Basic code is viewable and editable. You can modify the database and its coding however you want.

famhistmdb-access2003-free.zip (56 KB) Free version for Access 2003. This free version allows you to examine the tables to see if they provide the types of data fields and formatting you want. It doesn't have the Visual Basic code that gives the buttons on the BrowsePeople form their functionality.
famhistmdb-access20.zip (87 KB) Only 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.

The "Search .DOC" button does not do anything, in either the free or paid versions. I left it in the form so you can rename and reprogram it to do something useful, if you wish. 

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.

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.