MS Access v2 Talking database
12/10/96

Introduction

This is prototype v1 of a simple customer contacts system which speaks field names and values of fields as the cursor/tab position moves around the sceen. This system is an attempt to help a visually impared friend of mine record company and contact details while gathering funds for a charity. 

I have built this little system under Win95 but as all the apps are 16bit it should run happly under both Win95 and Win3.1.

Overview

All functions have keyboard shortcuts and the database system runs automatically when MS Access opens the database (called neville.mdb). All the macros/VB scripts/screen designs are held within this file and they can be individually edited.

There are two tables within the database:
- Customer
- Contact

'Customer' is a list of the usual things about the prospective donor like company name, company address, contact name & role, contact numbers etc. There is a large memo field for miscellaneous notes.

'Contact' is a repeating group within Customer to record details of phone calls, letters sent out etc by date.

The theory is that it is always possible to find the status of a contact with a few simple keyboard commands. 

I have used SoundBlaster's Monolog system (with DDE links) to output the speech but the calls are all via subroutines (in a basic module) so they can be altered easily to use a different system. As written, the system expects Monolog to be running when the database is opened but it would be a simple matter to start Monolog automatically if necessary. I have also used the system with WinSpeech v3 which also allows DDE conversations between MS Access and the voice application.

Database Layout

The top half of the screen has two columns of fields and several buttons with keyboard shortcuts to do things like tab around the screen and move to new records. The lower half of the screen has a subform with a table of contact dates & notes. it has its own set of bittons to move records etc.

The full set of keyboard commands are:
- Alt Z = reset database & move to start of first record
- Alt Q = move to start of current record
- Alt R = repeat the last field (NB doesn't work properly as I haven't worked out how to avoid the tab position being lost)
- Alt E = allow/disallow edits (default is to disallow edits so that it is safe to move around then screen without updating text by mistake).
(following applies to customer details)
- Alt F = move to first record
- Alt L = move to last record
- Alt P = move back to previous record
- Alt N = move to next record
- Alt I = Insert a new record
- Alt H = Hunt/Find a record (enter keyword & hit enter then hit escape to close Hunt window)

(following applies to contact details - format is date + detail text)
- Alt T = move to top of contact details (i.e. latest date)
- Alt B = move to bottm/last record
- Alt D = move down to previous contact record (later date)
- Alt U = move up to next contact record (earlier date)
- Alt A = add a contact record
- Alt S = scan for a contact record (enter keyword & enter then hit escape to close Scan window).
- Alt m = say current date/time.

The tab key is used to move between fields on the screen and the voice subroutine will speak the name of the field and the value of the field contents every time a field gets the 'focus'. Alt tab is go back as usual.

Other Details

The system creates a text record in 'mydata.txt' of everything it says (or should say). i have found this handy as a debugging tool and as a record of a session. This feature could easily be disabled.

Note that Monolog insists in completing words & phrases and pauses the tab movements while talking which means you have to wait till it has completed. I guess more expensive external sound cards won't have this limitation.

Known Bugs

1 - tab positioning is lost when buttons pressed
2 - Monolog insists on saying the date in American mm/dd/yy format no matter what the settings on my PC. I presume this is a limitation in Monolog. It means that ligitimate dates like 20/5/96 are not spoken at all!
3 - When moving to a new customer record the contact details are read out before the company name is read.

Next Steps

I intend to add functions to create mailmerged letters so that a set of companies can be marked and form letters can be printed.

This prototype is far from complete and needs work on the tab movements and search features but I'm adding it to this forum in case it is of use to others.

Good luck
Fergus Boyd
C/serve 71703,155