please post the exact VISA query you are using.
As far as the timeout, I rarely change the value. I usually set it to 2 seconds and leave it alone unless I have a very long operation coming up. There is one particular setting a have to use on my power meter to measure a very low duty cycle noise waveform. The power meter can take up to 45 seconds to settle and return data. So before I send the query command I set the timeout to 45000mS. I believe you can set it to a very very large value. Check the VISA manual. ]
The purpose for the timeout function is so that if you make a query and the instrument is not connected to the bus, or has an internal problem, or there is some other failure, your program doesn't have to just lock up. The query will fail with
a timeout and your code can use the error information to notify the operator of the problem. So set it to some reasonable value and change it when you start a long operation.
You mention using VB, but it is unclear if you are still using it. What are you programming with now? That may also be helpful to solving your problem.