The bug, as first reported by CNET News.com, affects the way Access handles changes to database records, causing edits made on one record to be saved to another. This means that, in a typical business application, the bug could cause information associated with a particular customer or medical patient to be attached to the wrong account.
A Microsoft executive yesterday confirmed the existence of the bug but said it was limited to Access 97, the latest version of the desktop database. Now, a company representative said that statement was "premature," adding that "upon further testing" the company has confirmed that the bug also affects Access 2.0 and Access 95.
The company has also posted a bulletin to its Web site that documents the bug's behavior and suggests a method for resolving the problem.
John Duncan, a Microsoft Office product manager, said the company is also working on a software patch for Access that will be posted for free download to Microsoft's Web site. He did not give a firm date for the patch's availability.
The data loss bug is leading some developers to question whether the cause of the problem is Access, or Access's underlying database engine, known as Jet.
Jet is used in several Microsoft products, including its Exchange messaging server and is the default database used with the company's popular Visual Basic development tool. Jet can also be used with other Microsoft development tools, such as Visual C++.
If the underlying glitch does affect Jet, it dramatically expands the scope of the problem. Visual Basic and other applications are deployed with a runtime version of Jet, meaning that there are thousands of applications in place based on the Jet engine.
The Access data loss bug stems from the way the handles records. One developer, an experienced Visual Basic/Jet user who contacted News.com, said that area has been problematic for Microsoft, and that the company has changed its approach several times.
A Microsoft representative was not immediately available to comment on whether the company has tested the Jet engine alone, in addition to Access, and other applications that use Jet.
The Access bug was discovered by an Access developer last week and since reproduced by many users. Access developers, particularly independent consultants, fear that the bug could require reprogramming to applications already in use and that existing user databases could be corrupted. Worse, the problem could result in improper billing, diagnoses, or other potentially disastrous legal issues, according to developers.
The problem is also particularly thorny because it can corrupt database records without users realizing that anything wrong has happened.
Access is used as the underlying database in many business applications, and is particularly popular with consultants and systems integrators building applications for small businesses, such as doctors' offices and insurance agencies.
Duncan said yesterday that Microsoft has received only one phone call in relation to the bug. However, the Access bug has been the subject of several hundred postings to the "comp.databases.ms-access" Internet newsgroup since last Wednesday.
Opinions on the bug's potential impact vary widely. Many developers claim that they may have inadvertently been a victim of the bug. Others downplay the bug's significance, claiming that if the flaw truly is a threat, it surely would have been discovered sooner.
"This is by far the most heinous and destructive bug I have ever seen," said one developer in a newsgroup posting. Other developers warned that the bug may easily go undetected in many applications, and have openly questioned whether Access should be use used for commercial applications until a patch is issued.
"Can you afford to trust your data to it [Access], if the wrong client gets your address, your donation, your invoice, your order, your merge letter?" questioned one developer.