How do I begin to make a completed database user-friendly?

  • Thread starter Sherri at Quality Envelope
  • Start date
S

Sherri at Quality Envelope

I have almost completed all aspects of my Access database design and am ready
to make it useful to other users. I would like to have only task-related
buttons and options available to the other users, without the program
interface visible if possible.
 
J

Jeff Boyce

I generally advise folks that there are three distinct learning curves to
using Access...

1. relational database design (and normalization)
2. Access tools/functions/features
3. UI/graphical design

If you don't have previous experience building user interfaces, plan on
spending some time learning what users like and dislike.

And decide how "fool-proof" you need to make your application. If the folks
who will use your app know little/nothing about computers, you will have to
work much harder to prevent them from hurting themselves or the data (or the
app) ... "Easy ... is HARD!".

Good luck!

Regards

Jeff Boyce
Microsoft Office/Access MVP

"Sherri at Quality Envelope" <Sherri at Quality
(e-mail address removed)> wrote in message
news:[email protected]...
 
M

Mark

You can build a custom menu that will replace the standard Access menu.
Buttons on the custom menu can take you to all the functonality you built
into your database. A custom menu will give your database a professional
look.

Steve


"Sherri at Quality Envelope" <Sherri at Quality
(e-mail address removed)> wrote in message
news:[email protected]...
 
J

Jeff Boyce

Mark

While I agree that creating a custom menu form gives an opportunity for a
professional-looking application, I've seen too many folks who think that
everyone has their taste in colors, and why wouldn't someone like pink
letters on purple background...?!

Regards

Jeff Boyce
Microsoft Office/Access MVP
 
M

Mark

Jeff,

You misread my response!!

I said custom menu (at the top of the screen!!) not a "psychedlic" form. Or
are you suggesting a purple form with pink letters?

Steve
 
K

Ken Sheridan

One thing I'd add to what's been said already is the importance of error
handling. Otherwise your users might be faced with cryptic error messages,
and be uncertain as to what to do next. Its important to understand that an
'error' does not mean something has gone wrong. Errors will happen during
the normal course of events. To take a simple example, say you have a button
to print a report for an employee selected in a combo box with:

Dim strCriteria as String

strCriteria = "EmployeeID = " & Me.cboSelectEmployee

DoCmd.OpenReport "rptEmployeeProjects", WhereCondtion:=strCriteria

In the report's NoData event procedure you have some code which informs the
user if there is nothing to report (e.g if the employee hasn't been assigned
to any projects):

Const conMESSAGE = _
"No projects have been assigned to this employee."

' inform user
MsgBox conMESSAGE, vbInformation, "Warning"
' cancel report
Cancel = True

If the report is cancelled the code in the button's Click event procedure
will raise an error (number 2501), and the user would get a system generated
error message in addition to your custom one. To avoid this you can handle
the error like so:

Const conREPORTCANCELLED = 2501
Dim strCriteria as String

strCriteria = "EmployeeID = " & Me.cboSelectEmployee

On Error Resume Next
DoCmd.OpenReport " rptEmployeeProjects ", WhereCondtion:=strCriteria
Select case Err.Number
Case 0
' no error so do nothing
Case conREPORTCANCELLED
' anticipated error so do nothing
Case Else
' unknown error so inform user
MsgBox Err.Description, vbExclamation, "Error"
End Select

If the anticipated error occurs then the user will be unaware of this. Only
if an unknown error occurs, i.e. if something really has gone wrong, will
they get the error message, but this will be via a simple message box, not
the usual potentially confusing error message dialogue, so they can back out
gracefully.

When developing the interface, if an anticipated error might occur, you can
at first deliberately generate it to get its error number, so you then know
what number to use when 'trapping' the error.

As well as runtime errors like the above there may well be situations where
a 'data error' occurs, e.g. an index violation if an attempt is made to save
a row to a table with a value in a uniquely indexed column which already
exists. These can be handled in a form's Error event procedure where you can
examine the value of the DataErr argument to see what error has occurred, and
take the appropriate remedial action.

Errors might also occur when executing an 'action query'. These can be
trapped by using the dbFailOnError option of the Execute method. This is
frequently done within a Transaction, so that the transaction can be rolled
back so as to avoid data being updated inconsistently; you would not want
only the first (debit) half of a transaction which moved money from one
account to another to succeed for instance, if there were an error executing
the second (credit) part!

Ken Sheridan
Stafford, England
 
J

Jeff Boyce

I'm suggesting that folks have different tastes, so stating "a professional
looking application" without defining it leaves it open to the
interpretation of the reader (see some of the reactions to my mention of
what I've run across).

NOTE: no bunnies were harmed in the mention of the (in my opinion) garish
color scheme...

Jeff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top