No incluyas un for, por que con eso estarás ejecutando una eliminación para cada fila.
Cita: 'Si no hay una fila seleccionada, sadrá del procedimiento sin hacer ningun cambio
If IsNothing(Me.dagatridview1.CurrentRow) Then
Exit Sub
End If
'Declaraciones
Dim cmBorra As OleDbCommand
Dim i As Integer
'Dim cn As OleDbConnection
'Construimos y abrimos la conexión con la base de datos
'cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\cb.mdb")
conexion.Open()
'Preparamos el comando
cmBorra = New OleDbCommand("DELETE FROM ETCB Where Producto=@P")
cmBorra.Parameters.Add("@P", OleDbType.VarChar)
cmBorra.Connection = conexion
'rellenamos el valor del parámetro
cmBorra.Parameters("@P").Value = Me.DataGridView1.CurrentRow.Cells("Producto").Valu e
'realizamos el alta
cmBorra.ExecuteNonQuery()
MessageBox.Show("Se ha borrado La fila seleccionada")
'Cerramos la conexion con la base de datos
conexion.Close()
actualizar_grid()
También sería importante que en las propiedades del DataGridView asignes
False a la propiedad
MultiSelect desde la ventana de Diseño, para evitar que seleccionen varias filas a la vez.
Saludos