Microsoft Access Tips for Serious Users

Provided by Allen Browne, December 2006.   Updated 2 July 2008


Converting to Access 2007

Hint: Code does not run unless your
database is in a trusted location.

To trust your folder, click:

The most significant release in 12 years, Access 2007 introduces major new functionality in both the engine and the interface. Seasoned developers will discover new things are possible, and casual users will find more things within their grasp.

Get up to speed with the new Access:

These observations are limited to Access, and do not address very significant new capabilities for data collection and integration with other software through WSS (SharePoint) or other software.

If you are upgrading from Access 97, you will also need the information in article, Converting from Access 97.

Updates/Hotfixes

Service Pack 1 is essential. Apply hotfixes if you experience a problem.

Service Pack 1Addresses many bugs in the original release. Details in kb 942378.
Access RuntimeThe runtime now includes SP1
Jan 28 hotfix1) Overlapping windows error
2) SendObject and OutputTo fail with XLS format
3) "Unrecognized format" error opening database
Feb 26 hotfix1) Performance issues running A2007 in Terminal Server on Windows Server 2003
2) Warnings installing packaged solution (created with Access Developer Extensions 2007)
Feb 26 hotfixODBC driver returns wrong results for SQLDescribeCol and SQLColAttribute
Mar 6 hotfix1) Compact creates a new database named Database1.mdb.
2) Query of ODBC data source is very slow in Design View.
Mar 15 hotfixPass-through queries prompt twice for data source.
Mar 22 hotfixQuery fails on fields with half-width katakana characters.
Mar 31 hotfixPage Setup dialog does not save customized printer settings.
Apr 8 hotfix1) Error 3251 synchronizing replicated database with DAO ("Operation not supported...")
2) Error 3001 updating records in JET 3.x database ("Invalid argument")
Apr 11 hotfixCustom shortcut menu (right-click) for subform not displayed (A2003 database in A2007)
Apr 16 hotfixDatabase may be deleted on compact
Apr 27 hotfixPerformance issues with an ADP
Jun 24 hotfixMenu items unusable after close or compact.

What's good (useful new features)

If you know Access, the new version may leave you shocked and bewildered - unable to find a thing without the familiar menus, toolbars, and Database window. It takes some time to adapt.

Once you recover, you unearth some seriously useful new functionality beneath that pretty face:

Feature Applies to Usage examples
Template ACCDB, MDB

Create a template database to be used any time you create a new database.

Any new database is initialized with whatever you placed in the template - settings, properties, forms, reports, macros, modules, references, error logging, splash form, ...

Seriously useful for individuals and developer teams who want consistency. Solves many problem properties (Name AutoCorrect, default references, etc.)

PDF Reports, datasheets

Formatted data in exports and emails. Requires a download from Microsoft. The PDF add-in can be chained into the runtime installation.

Field and Table templates Table design

Predefined fields (XSD-based settings for name, type, length) and tables provide consistency and speed in table design.

Rich text Memo fields, text boxes

For the first time, you can format text a text box: bold, italics, bulleted lists, fonts, colors, etc.  Use for comments, merge letter reports, ...

Applies to text boxes that are unbound, bound to an expression, or bound to a Memo field that has the Text Format property set to Rich Text (in table design.)

Note: stores HTML (not RTF.)

Compressed storage OLE field, Attachments, pictures on forms/reports Images are in compressed format (e.g. JPG), with transparency (e.g. PNG.) Previous versions used used bitmap storage - impractical for more than a handful of images.
Append Only Memo fields

Keeps a ColumnHistory of the text in the memo field each time it is changed.

Use for legally sensitive notes (e.g. staff/client case notes.)

Tabbed documents Open queries, forms, etc.

Choose between tabbed documents and overlapping windows: Office Button | Access Options | Current Database.

Split forms Forms

A synchronized Datasheet (for locating the record) and Form view (for editing.)

Layout view Forms, reports

Design forms and reports while viewing your data.

Control layouts Form and report design Arrange controls as a group (including labels in a different section), and manipulate them together. Add gridlines that expand to the tallest control, even where controls Can Grow.
Search Datasheets, forms

A Search box in the horizontal scrollbar searches any field in real time, finding matches between keystrokes. No setup: automatically appears in datasheets and forms.

Filters Datasheets, forms

Filter or sort by clicking the column header in a datasheet. No setup.
(Particularly good on date fields, e.g. "last week", "last month".)

Totals Datasheets

In any datasheet, depress Totals on the Records group of Home tab.
At the foot of each column, choose sum, count, average, etc. No setup.

Bound images Image control Images now have a Control Source. Save the file name in a text field, and the image displays it without code. Show a graphic for each record, even in Continuous Form view.
Date picker Date fields, text boxes

Calendar automatically appears beside date fields/controls. No setup.
(Can be suppressed with Show Date Picker property.)

Edit list items Combos, list boxes

Set the List Items Edit Form property of the combo box.
Right-click to edit/add to the items to the combo's list.

Alternating row colors Reports, forms, datasheets

Shade alternate rows by setting the Alternate Back Color property of the Section. No setup required for Datasheets.

Truncated numbers Number fields

Option to show numbers as #### if column is too narrow (as Excel does.) Configurable: Office Button | Access Options | Current Database | Check for truncated number fields.

Macro design arguments Macros

In Macro Design, a new column displays the arguments for each action, making it much easier to follow what the macro is doing.

TempVars Macros, queries, code, controls

Collection of variables that can be used application-wide and survive code resets. Example: In AutoExec macro, SetTempVar named LicensedTo to "Acme Corporation", and add this text box to each report header:  =[TempVars]![LicensedTo]

Save Import/Export External data After an import or export (External Data tab of the ribbon), you can save the operation and repeat it later.
Data Collection Data Send HTML forms in email, and automatically process the data when replies are received. (See the Collect Data group on the External Data tab of the ribbon.)
Template databases Anyone wanting a sample database to use or extend Sample databases to get you started.
For business, education, personal, and the Northwind sample.
Free runtime Everyone Microsoft is providing free developer extensions and runtime Access so you can create an Access 2007 application and give it to users who do not have Access 2007. (In previous versions, this was an additional commercial product.)

There are many other little improvements as well. For example, datasheets are more readable and colorful, the Parameters dialog (in query design) is a much larger, the NavigationCaption property for forms, and the Auto-Format styles to enhance the look of your database.

 

What's mixed (good and bad)

Some new features could be considered good or bad, depending on your point of view. Microsoft designed many of these features for end users, so the "bad" is most likely the perspective of the serious user or Access developer.

Feature Good Bad
Multi-valued fields Easy for beginner to choose multiple values in field.

The relational structure behind multi-valued fields is not accessible.

Developers will find it harder to handle complex data types. Any generic procedure you write must be capable of handling fields that contain fields. You cannot use a table with a multi-valued field in an IN clause (i.e. in another database.)

Problems with filters - kb 926701

Attachment fields Able to store multiple attachments for one field.
Supports compressed storage.

Attachments are complex data, so the comments above apply. Many large attachments may push you towards to 2GB limit.

Report view Right-click fields in report view to filter, sort, find, copy, or follow hyperlink.

The events of the report's sections do not fire in this view.

Ribbon New look.
Programmable.

Initial frustration at not knowing where to find things.
Custom ribbons are harder to create than custom toolbars.

Navigation Pane Can be resized, shuttered, or hidden.
Configurable.
Search box (not shown by default.)

Harder to find an object, e.g. you have hundreds of queries.

By default, objects sort by sub-type (e.g. crosstab queries above select queries or action queries.) Configurable.

Once a category is collapsed, the Nav Pane does not remember the most recently used object under each category.

Modify schema (Datasheet) Can disable: Office Button | Access Options | Current Database | Enable Design Changes in Datasheet View.

On by default, so users can add, delete, and rename fields in Datasheet view.

Macros more powerful Embedded macros, with error handling.
Use variables in macros - SetTempVar.
Works even with code disabled.

Still inadequate for most serious tasks.

Sorting And Grouping (Reports) Easier for novices to discover and understand.

Cannot see many rows at once. Shows sorting direction for selected field only.

Field List The Field List (form/report design) can show fields from all tables, making it easier for novices to add fields from other tables. Side effects of altering the Record Source (e.g. read only, or records gone due to inner join.) Can make Design View slow to open.

 

What's gone (features removed)

A few of the features Microsoft considered to be "less used" have been omitted from the new file format (ACCDB):

Feature removed Workaround
Security (MDW)

ACCDBs do not support security, and Access 2007 does not provide the interface to manage security for MDBs.
Use tables attached to a database that has security (SQL Server, MySQL, ...), or attach tables from an MDB and manage them as described in kb 918583, or Security Considerations and Guidance for Access 2007 or What happened to User-Level Security? (In reality, the Access security was never more than a padlock.)

Replication

Use attached tables, connected to a database that has replication.

Data Access Pages (DAP)

DAPs are no longer supported. Generate your web interface through PHP or ASP. Microsoft's explanation.

Publish report to Excel In the new version (MDB or ACCDB), you can no longer export a report to Excel. (Tables and queries can still be exported.)
Speech recognition On Windows XP, Office 2007 cannot handle speech input. You must use Vista, or purchase 3rd party dictation software.

 

What's fixed (old issues solved)

Several issues with existing versions of Access are solved in 2007:

Issue Solution
Security dialogs

Every time you opened your database, Access 2003 tried to convince you that was a bad thing unless it was digitally signed. Access 2007 solves this by introducing Trusted Locations (Office Button | Access Options | Trust Center | Trust Center Settings.)

Mouse Wheel

Developers often coded to disable the mouse wheel so it would not scroll records in Form view. Access 2007 scrolls in Datasheet and Continuous view, but not form view. (Use the Mouse Wheel event if you want the old behavior.)

Email in Hyperlinks Previous versions prefixed "http://" to all hyperlink fields. Access 2007 recognizes email addresses, and prepends "mailto:"
Percent format If you type 5 into a field formatted as "Percent", Access 2007 understands it as 5%. Previous versions interpreted it as 500%. (This workaround is no longer required.)
Default Value (number fields) You no longer have to remove that annoying zero Access used to assign to the Default Value property of every numeric field you created.
Reserved field names Access 2007 recognizes the most common field names that cause problems (e.g. Name, Date, Month, and Year), and warns you (in table design.) It responds to only a very few reserved names, so you still need this utility or list.
Picture + Caption Display both a Picture and a Caption on command buttons and tab controls (but not toggle buttons.)
Autofill (datasheets) Previous versions attempted to guess the number you wanted when entering data in a datasheet. This annoying behavior has been removed.
Imports Several issues solved, such as the ability to choose columns and specify data types when importing from Excel.
Internal margins Scroll bars now work for controls with internal margins, and size-to-fit correctly. Controls now have padding as well as margins.
Filters Several filter bugs fixed.
Decimal data type Access can now sort Decimal fields correctly.
Queries survive if table gone If a linked table is not present, Access 2007 opens the query in SQL View, leaving the query statement intact. (Previous versions opened in design view, removing the joins from the FROM clause.)

 

What's broken (new bugs)

Like Access 95 (the first 32-bit version) and Access 2000 (the first JET 4 version), Access 2007 is a major revision. Inevitably, the initial release of this version buggy too. Service Pack 1 for Office 2000 addressed more than 300 bugs in Access alone.

All the engine-level bugs in previous versions have been carried into Access 2007 unfixed, so you can expect the same incorrect results in your queries.

And the list of new bugs in Access 2007 has just begun:

Bug Comments Fixed?
Spell checker corrupts rich text

If you run the Spelling Checker on a rich text field that contains a carriage return, the words are messed up.

Yes: SP1
Cannot assign specific printer to report

In report design view, the Page Setup dialog lets you assign a specific printer to the report. Access 2007 loses this setting, and the report goes to the default printer. (A report assigned to a specific printer in a previous version still works.)

Yes: hotfix
RecordSource property not updated

If the source for a form/report is a SQL statement, and you click the Build button beside the RecordSource property, your changes are lost when you return from the query designer (unless you move to another property.)

No
OldValue incorrect in multi-valued fields

While a form is being edited, a control's OldValue should indicate the value that will be restored if you undo the edit. The OldValue of a combo bound to a multi-valued field yields the current value, not the old value.

No
Rich text limited in subforms

A rich text control in a subform is barely useable. Since the formatting on the ribbon is disabled, and the minibar does not appear, you are limited to keystrokes such as Ctrl+B.

No
Compatibility issues

Access 2007 cannot understand some expressions that work in previous versions. For example, this expression in the Control Source of a text box results in #Name:
    =[Form].[RecordsetClone].[RecordCount]
For a workaround, see Avoid #Error in form/report with no records.

No
Interface issues

There are some problems with the new interface, e.g.:

  • View icon (Home tab of ribbon) remains disabled after resetting code.
  • Print Preview disappears from ribbon.
?
Shift+Del (Navigation Pane)

If you Shift+Del an object in the Navigation Pane (deletion without confirmation), Access misreads the held-down shift and selects all previous objects. So if you delete the last form, and slip - tapping Del a second time, or not releasing it before the first AutoRepeat -you just deleted ALL forms, without confirmation.

No
Events don't fire for Image control If an Image control is on the page of a tab control, its Click, Mouse Down, and Mouse Up events don't fire. Yes: SP1
VBA References in Windows Vista

See Errors using multiple versions of Access under Vista.

No
Export to PDF: Underlining not shown Underlined labels and text in a report are not underlined when you export to PDF. Workaround: use an expression in a rich text box, instead of plain text or label. (Courtesy Alan Cossey.) No
Office Live data accepted, but lost If a database linked to an Office Live site is taken off line, and opened with an unactivated Access 2007, the user is warned that the data is read-only. However, the form permits data entry, but loses the data when the form is closed. (Courtesy Alan Cossey.) ?
Data loss on compact If you have an AutoNumber field that is not the primary key, Access 2007 allows an Update query to update the field to Null. When you compact the database, you then lose all records in this table. ?
Crash opening report with fields
assigned programmatically
If you assign the Control Source of text boxes in Report_Open, you may crash Access 2007 if the report is more than one page long. (Similar to kb 927536, but is issue not limited to Layout View.) Yes: hotfix
Custom Shortcut menu fails Custom shortcut menus (right-click) do not work in subforms.  Hotfix released. Yes: hotfix
Custom Toolbar buttons may not work Some toolbar buttons do not work in MDE, e.g. if you copied the Close button from the Print Preview toolbar.  
Navigation buttons do not auto-repeat Holding down the navigation buttons (left end of horizontal scrollbar) no longer spins through records. No
DAO synchronise may fail (error 3251) Hotfix released. Yes: hotfix
Microsoft's list of bugs See the Errors section of http://support.microsoft.com/ph/11265. N/a
Access Junkie's list of kb articles Jeff Conrad (ex-MVP, now working for Microsoft) has created this list. N/a
Click event reports wrong record If you change record in the Click event of a label, image control, text box etc (not command button), Access 2007 reports the old record until the event ends. No
Sendkeys may fail Unless previous versions of Access are also installed, macros that use Sendkeys may fail with the message:
    The SendKeys action requires the Microsoft Office Access Utility Add-in to be loaded.
No
Changing Text Box to Label Access 2007 crashes when you save a form after right-clicking a text box and choosing Change To | Label. No
Date picker shows in queries In table design, you can set the Show Date Picker property to No for a Date/Time field, but in a query the field still has the date picker. No
Form named the same as a table/query fails Error: The expression you entered refers to an object that is closed or doesn't exist. Kb 926700. ?
Error moving pages in reports Error: No current record. Kb 888635. ?
Changing Control Source crashes Access Access may close if the form/report that has a subform/subreport. Kb 927536. ?
Combo becomes transparent A combo may display as transparent when focus leaves it.  Workaround: set the AlternateBackColor property of the the (Detail?) Section to something other than "No Color", e.g. #80000027. No
Table/query not found Occurs if table/query has the same name as a form/report. Kb 926700. ?

In some cases, Access 2007 deletes the database when you compact it. To prevent this:

Microsoft Office Access can't delete database name.accdb after compacting it. The compacted database has been named Database.mdb.

If you compact a database using the same name, Microsoft Access creates a new compacted database and then deletes the original database. In this case, however, the original database wasn't deleted because it is read-only.

If you can, remove the read-only status, delete the original database, and then rename the new database using the original name.
If you can't remove the read-only status, inform your workgroup administrator.

Configuration

The settings below are suggested for developers who do not want users modifying the database schema or objects.

Setting Issue Comments
Trusted Locations VBA code is disabled by default.

Add the path where your databases are stored: Office Button | Access Options | Trust Center | Trusted Locations.

Name AutoCorrect Corruptions and bugs.

Disable for each database: Office Button | Access Options | Current Database | Name AutoCorrect.

Schema changes Users can delete fields, rename fields, and add new fields in Datasheet view.

Uncheck this option: Office Button | Access Options | Current Database | Enable design changes for tables in Datasheet View.

Important: Do this for every database, including any existing ones that might be used under Access 2007.

Layout view Users can modify forms and reports.

Uncheck: Office Button | Access Options | Current Database | Enable Layout View. Alternatively, set AllowLayoutView to No for each form and report.

Note: Apply this setting in each database, even if you had set AllowDesignChanges to No in previous versions.

Hint: Create a template with these options set, so they are applied whenever you create a new database in Access 2007.

Other settings that differ from previous versions:

 

Compatibility

Access 2007 can natively work with MDB files in Access 2000 format or Access 2002/2003 format. It will modify those files, e.g. adding new hidden system tables (such as MSysNavePaneGroups) and properties (such as UseMDIMode), but the files still work in the old versions. If you need to programmatically determine the file format, version of JET/ACE, and version of msaccess currently executing, see our Splash Screen utility.

Without extensive testing, the compatibility seems surprisingly good considering how different the new version is. It transparently uses Microsoft DAO 3.6 Object Library when you open an MDB, but Microsoft Office 12.0 Access database engine Object Library when you open an ACCDB, and since both libraries respond to References("DAO"), your existing code works in both versions.

In converting an old database, you could strike problems with deprecated items such as the FileSearch object, dialogs that no longer exist in the ribbon interface, or objects related to the removed features.

For some reason, you can export a table or query in Excel format, but not a report. Both OutputTo and SendObject fail with error 2282: The format in which you are attempting to output the current object is not available.

Do not convert a digitally signed database to an ACCDB. Access 2007 will prevent you modifying the code if you do.

Access 2007 does not support ADPs as well as previous versions. Microsoft recommends using attached tables instead, as explained in the book, Microsoft Access Developer's Guide to SQL Server by Andy Baron and Mary Chipman.  Hotfix released.

If you install Access 2007 along with previous versions, you may find that, over time, help begins disappearing from the previous versions. For example, if you place the cursor in a property/method in code (such as Visible) and press F1, you get a completely blank window (no content.)

Service Pack 1 also addressed the tedious delay each time you switch to Access 2007 after using another version. The reinstallation delay is now 20 seconds, rather than the 3 - 5 minute delay.

Links

These links contain technical information to help you get up to speed in Access 2007:

Site Description
Migration considerations for Access 2007Technet article, listing conversion/upgrade issues.
Menu/Toolbar to Ribbon (Excel workbook) List, matching all previous menu and toolbar items to ribbon locations.
Menu/Toolbar to Ribbon (Interactive)Click on the A2003 interface to be shown the A2007 location. (Uses Flash.)
AccessRibbon.comHow to create and manage ribbons for Access 2007, by Avenius Gunter. Also in German.
AccessJunkie.com Jeff Conrad's site on Access 2007, with many links in Access 2007 Help Topics and Access 2007 FAQ.
Access-Freak.com Access 2007 site by Oli S (MVP).
Clint Covington's blog Articles such as Ribbon Extensibility and Creating Filter Favorites
Access Team blog MSDN blog, with contributions by the Access team; links like Adding programs to deployment packages.
Transitioning existing apps to Access 2007 MSDN article by Jan Fransen and Ken Getz
Optimizing Access Apps Linked to SQL Server MSDN article by Andy Baron
Save as PDF The add-in from Microsoft
2007 Office System Driver Microsoft's driver to connect to Access 2007 databases (accdb and mdb) from non-Office software.
Access 2007 Solution Center Microsoft's "top issues" list for Access 2007
Developer Extensions and Access Runtime Microsoft's royalty-free runtime for Access 2007. (See kb 937998 if Developer disappears from Office Button.)
Database window for Access 2007 Database Window like previous versions. COM add-in by Avenius Gunter. Also in German.
Snapshot viewer for Access 2007 The snapshot viewer (for viewing exported reports) is not installed by default in Access 2007.
Help for Access 2007 Microsoft's help page for Access 2007.
Customize and control the Navigation Pane Microsoft's suggestions on how to use the Nav Pane as the interface for your application.

 


Home Index of tips Top