Visual Basic.NET - Ayuda Con Delete Access

   
Vista:

Ayuda Con Delete Access

Publicado por Carlos (2 intervenciones) el 19/09/2015 20:03:26
Captura-de-pantalla-2015-09-19-11.53.55

Buenas estoy tratando de eliminar un registro de la Tabla T_Usuarios

tengo este proceso

1
2
3
4
5
6
7
Public Sub eliminar(ByVal id As String)
        Dim consulta As String = "DELETE FROM T_Usuario WHERE Usuario =" & id
        cnx.conectar()
        Dim comando As New OleDbCommand(consulta, cnx.CNN())
        comando.ExecuteNonQuery()
        cnx.desconectar()
End Sub


lo cargo desde el formulario con

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub BtnBorrar_Click(sender As Object, e As EventArgs) Handles BtnBorrar.Click
        Dim usu As String
        usu = TxtUsuario.Text
        If (usu = "") Then
            MessageBox.Show("Ingrese Usuario", "Facturacion Electronica", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            TxtUsuario.Focus()
        Else
            If (MessageBox.Show("¿Seguro Eliminar los datos?", "Facturacion Electronica", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) Then
                'Try
                objusuario.eliminar(usu)
                DtgUsuarios.DataSource = objusuario.listar()
                'Catch ex As Exception
                '    MsgBox("No existe usuario", vbCritical, "Atención!")
                'End Try
            End If
        End If
    End Sub

pero me sale el error de la imagen lo estraño es que cuando lo recorro paso a paso esta con el valor que le paso con el botón pero siempre me sale el error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda Con Delete Access

Publicado por David (45 intervenciones) el 20/09/2015 15:19:03
Según tu código, el campo Usuario de la tabla T_Usuario es cadena, no número, por lo que a tu consulta le faltan los apóstrofes.
Teniendo esto en cuenta, la consulta de tu método Eliminar() sería:
1
Dim consulta As String = "DELETE FROM T_Usuario WHERE Usuario = '" & id & "'"
Consejo: cambia el nombre del parámetro del método Eliminar() a usu, usuario o algo parecido. El nombre id da lugar a confusión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Ayuda Con Delete Access

No se malacostumbren a haer ese tipo de concatenaciones con las comillas y apóstrofes, ya que les hace muy vulnerables, de prefrencia usean parámetros o un String.Format.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Con Delete Access

Publicado por David (45 intervenciones) el 21/09/2015 16:54:53
Tienes razón; pero no ha preguntado cómo optimizar o hacer más legible el código, sino dónde está el error.
No vamos a hacer todo el trabajo, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos Javier Medina

Ayuda Con Delete Access

Publicado por Carlos Javier Medina (31 intervenciones) el 21/09/2015 15:24:10
Hola Carlos,

¿Sabes si la tabla tiene relacionada alguna otra tabla a ella?, Porque si está relacionada y tiene registros que dependen de la tabla usuarios, no te va a dejar borrarlo a menos que borres los dependientes primero.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar