ya vi el error.. está clarisimo en tu código del evento del boton :
Código vb:
Ver originalDim id As Integer
conexion = New SqlClient.SqlConnection("server=jromeuwxp;database=soriana;Integrated Security=True")
Using cmd As New SqlClient.SqlCommand("sp_borra_t_competencia", conexion)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlClient.SqlParameter("@id", SqlDbType.Int))
cmd.Parameters("@id").Direction = ParameterDirection.Input
cmd.Parameters("@id").Value = id
Dim rv As String
conexion.Open()
rv = cmd.ExecuteScalar().ToString()
conexion.Close()
If (Convert.ToInt32(rv) > 0) Then
MessageBox.Show("El registro no se puede borrar, ya que cuenta con relacion")
Else
MessageBox.Show("El registro ya no existe")
End If
End Using
si te das cuenta en la primera línea declaras tu variable id, pero no le pasas ningun valor dentro de ese evento para pasarlo luego al procedure, e ahí tu error. Saludos!

.