Defective Microsoft Access? I don’t think so! Ask the Community!

Earlier today a LinkedIn contact asked me a question about Microsoft Office Access.  I don’t know a while lot about Access, but here is why I am such a huge proponent of the IT Pro Community.

The contact is someone who I met at a community event – an event I did on Windows Vista at the Association of Independent Consultants in Mississauga, Ontario.  We haven’t seen each other since, but we exchanged cards, and I remembered who she was.  She remembered me as the Microsoft MVP, a group of awardees that Microsoft bills as ‘Independent Experts, Real World Answers.’ 

Now, I honestly don’t know a lot about Microsoft Office Access.  Once upon a time I learned how to program simple databases, but that was about it… and in 2001.  However what I do know is how to reach out to the community, so I shot out a quick call to my community peeps on Twitter that I had a question about Access.  A bunch of people replied that they could help, including a member of the Krewe… a group of crazy nuts who know how to party at TechEd, but also do a LOT of great stuff… and they know their technology!

Brian Bell currently serves on the Syndication and Outreach workgroups with the Real Estate Standards Organization, The Microsoft International Consumer Advisory Board, The Krewe of Tech-Ed, and is VERY active as a leader and volunteer with The Boy Scouts of America (along with his son, Dillon).  Outside of that, Brian enjoys boating, fishing, whitewater, the beach, Cape Fear River, anything outdoors related, and most importantly, Brian enjoys spending time with his family and friends.  You can check out his entire blog at http://ageekblog.com

So Brian and I took the conversation off-line.  I sent him the question, and he asked me to give him a few hours to get me the answer.  Sure enough, a few hours later he came back with a whopping answer!  It could never have happened without community.

The question was:

There is a conflict I’m dealing with trying to resolve. It relates to the use of an Access database to facilitate furniture and equipment asset information. There are claims that the database is “defective” and I know that this term may have different meanings in the software industry. I also wondered if I could discuss the scenario with you to see if you think it is something they can legally claim is defective or if the issues they encountered were “human error” which I think it is or could queries from the database just disappear or become corrupted while the file was being transferred from a USB storage device to their private mainframe. The tables are intact.

The answer from Brian Bell is:

USB Drives have been proven problematic in the JET database world…. And it is so that Microsoft Access uses Microsoft JET…..

The proper sequence AFTER writing the DB to a USB drive is to COMPLETELY close Access after the save with the USB drive still plugged in and wait about 20-30 seconds AFTER you THINK Access is closed (or go to taskman (I use the task monitor from Microsoft Sysinternals ) and make sure it has completely closed. Once completely closed, The USB drive must be “ejected” from the USB control panel and NOT unplugged until after the “it is safe to remove your device” has appeared..

Not following those guidelines specifically can cause issues and even IF that is followed correctly, problems can still occur. (Think back to our glory days when access databases almost always corrupted themselves when writing to a floppy)

If it is a multi-user environment where multiple users are trying to access the data off of the flash drive, that will also cause issues… This is because access uses Microsoft JET. SQl is required for multi-user accessing of data in a database so it is safe to assume these issues can also occur in a virtualized environment as well. This also includes if other users are attached (not using, just even attached in some way) to the database you are trying to save it will or can corrupt. You can use the UserRoster JeT tool to verify thie user count or attachment see http://support.microsoft.com/kb/285822

Opening and / or saving the dabatase in another program other than the same version of access (including the use of 3rd party apps) can cause corruption.

So,the basics which you already know.. Access is simply a tool. It’s essentially a database management system… Nuts & Bolts, it’s a container of objects that simply contains a table or multiple tables of data.

As long as the database you are using was created within Access and not another program imported into Access, there cannot be a defect as the relational objects were created by their own parent within its own container of table or tables.

While Access is not defective, there are parts that work WITH access that can be problematic.

These can include a poorly designed database table, corrupt connectors, odbc emulators or drivers /etc. Defective software.

Common problems with Access are issues surrounding its attributes.

With an Access 2007 or 2010 database the database cannot exceed 2gb minus the system object space.

The database has a max number of just over 32000 objects. It cannot have more than 1000 modules when HASmodule = true is set.

An object name can’t have more than 64 characters, no more than 14 characters in a password, no more than 255 users concurrently using the database, no more than 20 characters in a user or group name, (See bottom of email for the complete attribute table)

Exceeding any of the capability attributes can cause problematic issues with the database.

Now from your email, it looks like the database “appears” to be ok but when the data is moved (I am assuming saved as database) to a usb drive, it then appears to be corrupt?

Things to look for when things aren’t saving correctly are the obvious.. Is BitLocker running? Does the USB drive contain any encryption or other software? (Have you tried a different brand/style/size USB drive that has been newly formatted) Are the versions the same on the read PC as they are from the PC writing the file to the database?

I would also look at UAC, Group Policy and NAP settings if on a network. If on a network I would look on both the master GP server and the client PC to make sure something isn’t replicating the GP rules in the LAN or WAN.

I have seen corruption on DBs also if pulling over VNC, RDP and/or VPN.

If pulling by using a query or call, has it been triple checked? If so, try the call and remove the full call and just pull a small portion off of the same database to see if a “smaller” query returns good data…

Doyou have logging and debug on so you can see when the failure occurs exactly what is failing or can you send me the details of the error?

The bottom line is, Access is not defective however there are hundreds of things around access that can cause issues and be problematic…

If any of the attributes in the table below are exceeded, (assuming you are running access 07 or 10 , if not and you are running 03 0r 00 or 97, then the attributes are much lower the earlier in versioning you go…)

If you copy (save) the DB to the drive are you opening FROM the drive and not copying from the drive back to the computer? Depending on read/write rates for i/o that could perhaps cause an issue..

General

Attribute

Maximum

Total size for an Access 2010 database (.accdb), including all database objects and data

2 gigabytes, minus the space needed for system objects.

Note You can work around this size limitation by linking to tables in other Access databases. You can link to tables in multiple database files, each of which can be as large as 2GB.

Tip For more information on reducing the size of your database, see Help prevent and correct database file problems by using Compact and Repair.

Total number of objects in a database

32,768

Number of modules (including forms and reports that have the HasModule property set to True)

1,000

Number of characters in an object name

64

Number of characters in a password

14

Number of characters in a user name or group name

20

Number of concurrent users

255

Table

Attribute

Maximum

Number of characters in a table name

64

Number of characters in a field name

64

Number of fields in a table

255

Number of open tables

2,048 including linked tables and the tables opened internally by Access

Table size

2 gigabyte minus the space needed for the system objects

Number of characters in a Text field

255

Number of characters in a Memo field

65,535 when entering data through the user interface;
1 gigabyte of character storage when entering data programmatically

Size of an OLE Object field

1 gigabyte

Number of indexes in a table

32 including indexes created internally to maintain table relationships, single-field and composite indexes.

Number of fields in an index or primary key

10

Number of characters in a validation message

255

Number of characters in a validation rule including punctuations and operators

2,048

Number of characters in a field or table description

255

Number of characters in a record (excluding Memo and OLE Object fields) when the UnicodeCompression property of the fields is set to Yes

4,000

Number of characters in a field property setting

255

Query

Attribute

Maximum

Number of enforced relationships

32 per table, minus the number of indexes that are on the table for fields or combinations of fields that are not involved in relationships*

Number of tables in a query

32*

Number of joins in a query

16*

Number of fields in a recordset

255

Recordset size

1 gigabyte

Sort limit

255 characters in one or more fields

Number of levels of nested queries

50*

Number of characters in a cell in the query design grid

1,024

Number of characters for a parameter in a parameter query

255

Number of AND operators in a WHERE or HAVING clause

99*

Number of characters in an SQL statement

Approximately 64,000*

*Maximum values might be lower if the query includes multivalued lookup fields.

Form and Report

Attribute

Maximum

Number of characters in a label

2,048

Number of characters in a text box

65,535

Form or report width

22,75 in. (57.79 cm)

Section height

22.75 in. (57.79 cm)

Height of all sections plus section headers (in Design view)

200 in. (508 cm)

Number of levels of nested forms or reports

7

Number of fields or expressions that you can sort or group on in a report

10

Number of headers and footers in a report

1 report header/footer;
1 page header/footer;
10 group headers/footers

Number of printed pages in a report

65,536

Number of controls and sections that you can add over the lifetime of the form or report

754

Number of characters in an SQL statement that serves as the Recordsource or Rowsource property of a form, report, or control (both .accdb and .adp)

32,750

Macro

Attribute

Maximum

Number of actions in a macro

999

Number of characters in a condition

255

Number of characters in a comment

255

Number of characters in an action argument

255

Project specifications

The following list of tables applies to Access 2010 and Access 2007 projects:

General

Attribute

Maximum

Number of objects in an Access project (.adp)

32,768

Number of modules (including forms and reports that have the HasModule property set to True)

1,000

Number of characters in an object name

64

Number of columns in a table

250 (Microsoft SQL Server 6.5)

1024 (Microsoft SQL Server 7.0, 2000 and 2005)

Form and Report

Attribute

Maximum

Number of characters in a label

2,048

Number of characters in a text box

65,535

Form or report width

22 in. (55.87 cm)

Section height

22 in. (55.87 cm)

Height of all sections plus section headers (in Design view)

200 in. (508 cm)

Number of levels of nested forms or reports

7

Number of fields or expressions that you can sort or group on in a report

10

Number of headers and footers in a report

1 report header/footer;
1 page header/footer;
10 group headers/footers

Number of printed pages in a report

65,536

Number of controls and sections you can add over the lifetime of the form or report

754

Number of characters in an SQL statement that serves as the Recordsource or Rowsource property of a form, report, or control (both .accdb and .adp)

32,750

Macro

Attribute

Maximum

Number of actions in a macro

999

Number of characters in a condition

255

Number of characters in a comment

255

Number of characters in an action argument

255

About these ads

One thought on “Defective Microsoft Access? I don’t think so! Ask the Community!

  1. Pingback: Trick: Use Microsoft Excel to product bult sets of SQL Commands for your database « End of Line Magazine

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s