Prova in locale se nò è un pasticcio.
Prova a usare un'altra sintassi, meno sintetica:

esempio:

dim strsql as string="Insert into tblOrdini (id,nome,cognome,residenza,comune,cap,telefono) VALUES (@id, @nome, @cognome, @residenza, @comune, @cap, @telefono)"

dim id as string="123354436655765"
dim objparam = new oledbparameter("@id",oledbType.char)
objparam.value=id
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@nome",oledbType.char)
objparam.value=txtnome.text
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@cognome",oledbType.char)
objparam.value=txtcognome.text
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@residenza",oledbType.char)
objparam.value=txtresidenza.text
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@comune",oledbType.char)
objparam.value=txtcomune.text
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@cap",oledbType.char)
objparam.value=txtcap.text
cmd.Parameters.add(objparam)

objparam = new oledbparameter("@telefono",oledbType.char)
objparam.value=txttelefono.text
cmd.Parameters.add(objparam)

conn.Open()

cmd.ExecuteNonQuery()

conn.close()