OleDB на самом деле не делает именованные параметры.Вы используете ?
символы в качестве заполнителей в строке SQL.Вы также должны создать новый объект соединения для каждого запроса и держать его открытым только в течение минимально возможного времени;обычно это делается с помощью ключевого слова Using
:
Public Sub insert_item(ByVal mydate As Date)
Using con As New OleDbConnection("connection string here"), _
cmd As New OleDbCommand("insert into shop1 (date) values (?)", con)
cmd.Parameters.Add("@mydate'", OleDbType.Date).Value = mydate
con.Open()
cmd.ExecuteNonQuery()
End Using
End Sub