Y2K bug lurking in Microsoft VB, Access
Woodwork, worms? But fix is at hand
Some of the problems websites had ticking over successfully from 1999 to 2000 are likely to be caused by a Y2K bug in Visual Basic 3.0, as evidence emerges of Y2K problems with old versions of Microsoft Access 2.0. Although Microsoft has upgraded Visual Basic several times since version 3.0, the program was used for many years in large, medium and small businesses, as was Access.
Laurence Rogerson, a consultant and director at web firm Hubcom, said yesterday that he had encountered several Y2K related problems with version 3.0 of VB. He said: "If you open up the immediate window and type in ? Year("3/1/00"), it returns 1900".
He said that testing he had performed on one application which was built with VB 3.0 and uses some old VBX support files, queried one database for names between October 1899 and January 1900. It then bombed out because none were returned, he said. Rogerson added that VB 3.0 was used in many corporate environments to develop applications. "It surprised me when I discovered the problem as I just assumed it would apply the current century to a two digit date but it seems that it doesn't," he said. "It works OK with a 4 digit year though, e.g.:
? Year("2/1/2000") => 2000 as does
? Year(Now()) ."
He added: "I'm much more concerned with Microsoft Access 2.0 applications as this comes from the same time and suffers the same problem as well There are masses of those still around as the later versions just do not work with Windows 3." However, the situation may not be as black as it is painted.
There are several references on the MSN site to problems with Access 2.0 for 16-bit Windows. The main reference can be found here, and according to a reader, Microsoft has fixes for the engines in both VB3 and Access. ® Our report on millennium tick-over problems