hace 3 años que no uso visual basic pero puede que el problema sea que le estás indicando longitud 60 en vez de 30
DATOS.TREBALL(DATOS.i, 2) = Mid(Form3.Text1.Text, 31, 30)
en vez de
DATOS.TREBALL(DATOS.i, 2) = Mid(Form3.Text1.Text, 31, 60)
EDIT: por cierto, el tercer mid tambien deberías modificarlo, porque creo que estás cogiendo 90 caracteres desde el 61, solo que como el string ya acaba te aparecerá bien por pantalla
deberías poner
DATOS.TREBALL(DATOS.i, 3) = Mid(Form3.Text1.Text, 61, 30)
http://msdn2.microsoft.com/en-US/library/05e63829(VS.80).aspx