Credo che il tuo errore sia qui
strSql="INSERT INTO dati (nome,cognome,telefono) VALUES (?,?,?)"

tu in values metti i Valori @posizione, @nome etc etc...Ma per il Data base access devi usare i punti interrogativi.

Ciao


Marco


Prova il mio esempio qui sotto.
codice:
Sub Button_Click (s As Object, e As EventArgs)
If IsValid THEN
Dim conDb As OleDbConnection
Dim strSql As String
Dim cmdSql As OleDbCommand

conDb=New OleDbConnection("PROVIDER=Microsoft.JET.OleDb.4.0; Data source="&Server.MapPath("../prove.mdb"))
strSql="INSERT INTO dati (nome,cognome,telefono) VALUES (?,?,?)"
cmdSql=New OleDbCommand(strSql, conDb)
cmdSql.Parameters.Add("@Nome", txtNome.text)
cmdSql.Parameters.Add("@Cognome", txtCognome.text)
cmdSql.Parameters.Add("@Telefono", txtTelefono.text)
conDb.Open()
cmdSql.ExecuteNonQuery()
conDb.Close

ltrOk.Text="<strong style='color:red'>UTENTE AGGIUNTO CON SUCCESSO![/b]"

End If
End Sub