I have had this problem many times when I first started using MySQL/VB... There are MANY factors to why this is happening... If I remember right, it probably has to do with putting the wrong type of data into a mismatched field. As an example, you need to make sure you don't put .08775 into a field that will not accept it... With VB it will add it, and then it could cause problems when you go to read it...
Make sure your fields in MySQL are long enough to accept the data you are trying to enter, and then make sure that in your VB text controls, that you ONLY allow the length on that field to be allowed to be typed in... Putting a longer text field than allowed will also cause funky errors...
I have noticed that if you link the table into access, sometimes you can see the record that has the problem by the #ERROR in the fields/record(s).
You should NOT have to re-structure and define again... Remove the records that are the problem, and it should be back to normal...
Check your formatting of variables; tinyint for checkboxes, int for integer fields, decimal for currency, text for memo fields, etc...
Hope this helps, keep us posted.
Aaron