First, you need to dump that abomination using string concatenation to build an SQL statement. That just leads to the problems you're seeing right now, as well as setting yourself up to have your database destroyed by malicious input.
Basically, the error is telling you that you're trying to stuff a value of one type (like a string or numeric value) into a field that doesn't accept that kind of data. For example, you're trying to put a string into a numeric field.
How do you solve these problems? "Parameterized queries".
strSQL = "INSERT INTO Customers (ID,Name,Email,Budget) " & _
objCmd = New OleDbCommand(strSQL,objConn)
.Parameters.Add(New OleDbParameter("@ID", 5))
.Parameters.Add(New OleDbParameter("@Name", "Somebody"))
.Parameters.Add(New OleDbParameter("@Email", "firstname.lastname@example.org"))
.Parameters.Add(New OleDbParameter("@Budget", 200000))