What is the exact error message that you get? What error number you get from oConn.Errors(0).NativeError (oConn being your connection object)?
A few things come to my mind straight away. Are the tables identical? Is any of the fields char/varchar type and contains '-character in the source table? Null values?
Do you have an error handler in your code where you can set a breakpoint and check, what does the strSQL variable actually hold?