I have written a program to track the membership of a local gym that works perfectly on every computer EXCEPT the computer at the gym. I am pulling out my hair trying to figure out what the difference is any why ONLY that machine throws an error.
Background: The program is written in VB.NET (2008) and calls a MS Access db (PROVIDER=Microsoft.Jet.OLEDB.4.0;). The computer in question is a Vista machine that is extremely slow (I think it's a Celeron with 512 RAM).
History: I have tested the exe on a Windows 7 machine in 32bit and 64bit. Tested on a 2000 and 2003 server with 32bit and 64 bit processors. Testes on a Mac running parallels with XP. Tested on machines with Office XP, 2003, 2007 and machines without Office (thinking it was a resource that was missing) Every machine works but the Vista machine.
The error occurs when the program is trying to update an existing table with a new value that is valid. The field is set to text so I know it's not a casting problem. The error message is a general exception that reveals no information. I can continue from the error but it does not complete the change to the db.
One other interesting note is that the database is accessed across the network so multiple people can use the program at the same time. Unfortunately the Vista machine is the "server" and is the home for the db. The other machines are laptops and are not always accessible on the network. If the program and db are local to the laptops then the program works perfectly. If the db is accessed across the network and the program is local to the laptop then the program crashes.
My only conclusion at this point is that the Vista computer is so slow that the database does not have time to open, read, write and close before another call to the database causes an error. Or perhaps it happens all in the same sub were the open, read, write and close all happen fairly quickly.
Does the slowness of the computer sound reasonable to cause a problem like this? Should I include a short delay between all db related opens and closings? Has anyone seen something like this before?
Thanks in advance for the help and sorry about the long preamble.