Visual Basic.NET - Ayuda Con Delete Access

 
Vista:
sin imagen de perfil

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
sin imagen de perfil

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
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ayuda Con Delete Access

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 20/09/2015 22:24:31
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
sin imagen de perfil

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
Val: 19
Ha aumentado su posición en 5 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ayuda Con Delete Access

Publicado por Carlos Javier Medina (34 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