Visual Basic.NET - Eliminar fila en Bd access desde VS.net

 
Vista:
sin imagen de perfil

Eliminar fila en Bd access desde VS.net

Publicado por juarez (7 intervenciones) el 10/11/2016 00:34:37
Que tal, estoy tratando de eliminar una fila desde código mediante una instrucción SQL pero no hace nada, dejo el código haber si pueden ayudarme.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub ButtonEliminar_Click(sender As Object, e As EventArgs) Handles ButtonEliminar.Click
    Dim NoFila As DataGridViewRow = Me.DataGridViewSIC.CurrentRow()
    Dim cnn1 As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE=C:\Users\Davidd\Desktop\Bienes_Suministros.accdb")
    Dim numero As String = DataGridViewSIC.CurrentRow.Cells("FECHA").Value
    Dim CERRAR As String
    CERRAR = MsgBox("¿ELIMINAR SIC " & numero & " ?", MsgBoxStyle.YesNo)
    If CERRAR = MsgBoxResult.Yes Then
        cnn1.Open()
        DataGridViewSIC.Rows.Remove(NoFila)
        SQL3 = "DELETE * FROM Registro_SIC WHERE FECHA = " & numero & ""
        Dim CMD As New OleDbCommand(SQL3, cnn1)
        CMD.ExecuteNonQuery()
        MsgBox("REGISTRO ELIMINADO")
        cnn1.Close()
    End If
End Sub
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
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Eliminar fila en Bd access desde VS.net

Publicado por Miguel (476 intervenciones) el 10/11/2016 01:07:20
Hola, creo que el asterisco (*) que tienes en la instrucción SQL está de más, también el valor del parámetro (FECHA) debería ir entre comillas (simples) si es texto. Por otra parte creo que sería mejor usar un 'ID' para tus registros.

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

Eliminar fila en Bd access desde VS.net

Publicado por juarez (7 intervenciones) el 10/11/2016 03:34:39
buenas noches

Hice los cambios que me comentaste pero ni así me borra el registro en la base de datos


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub ButtonEliminar_Click(sender As Object, e As EventArgs) Handles ButtonEliminar.Click
    Dim NoFila As DataGridViewRow = Me.DataGridViewSIC.CurrentRow()
    Dim cnn1 As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE=C:\Users\Davidd\Desktop\Bienes_Suministros.accdb")
    Dim numero As Integer = DataGridViewSIC.CurrentRow.Cells("No").Value
    Dim CERRAR As String
    CERRAR = MsgBox("¿ELIMINAR SIC " & numero & " ?", MsgBoxStyle.YesNo)
    If CERRAR = MsgBoxResult.Yes Then
        cnn1.Open()
        DataGridViewSIC.Rows.Remove(NoFila)
        SQL3 = "DELETE FROM Registro_SIC WHERE No = " & numero & ""
        Dim CMD As New OleDbCommand(SQL3, cnn1)
        CMD.ExecuteNonQuery()
        MsgBox("REGISTRO ELIMINADO")
        cnn1.Close()
    End If
End Sub



datagrid
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

Eliminar fila en Bd access desde VS.net

Publicado por arbol (166 intervenciones) el 10/11/2016 14:41:24
Saludos

instala anydeck y envias el id para guiarte en tu problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Edward
Val: 392
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Eliminar fila en Bd access desde VS.net

Publicado por Edward (146 intervenciones) el 10/11/2016 19:29:56
Buen día para todos,

juarez, me queda una duda el campo por el cual realizas el criterio de tipo DATE? es una fecha?, debido a que si en la base de datos estas almacenado fechas y luego en el código lo conviertes a "string" acá esta tu inconveniente, debe tener presente los tipos de datos para poder realizar operaciones.

Ahora para utilizar fechas en una consulta en Access debes agregar el símbolo #, te quedaría así:

1
2
Dim numero As Date = DataGridViewSIC.CurrentRow.Cells("FECHA").Value
SQL3 = "DELETE * FROM Registro_SIC WHERE FECHA = #" & numero & "# "

Ademas acostumbra a emplear el capturador de errores TRY CAST que es de gran utilidad para detectar fallos.

Te dejo este link con un ejemplo de procedimientos CRUD con Access.

https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregar-leer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
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 Castro

Eliminar fila en Bd access desde VS.net

Publicado por Carlos Castro (37 intervenciones) el 10/11/2016 23:40:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub ButtonEliminar_Click(sender As Object, e As EventArgs) Handles ButtonEliminar.Click
    Dim NoFila As DataGridViewRow = Me.DataGridViewSIC.CurrentRow()
    Dim cnn1 As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE=C:\Users\Davidd\Desktop\Bienes_Suministros.accdb")
    Dim numero As String = DataGridViewSIC.CurrentRow.Cells("FECHA").Value
 
   'VISUALIZA QUE VALOR MUESTRA NUMERO
   msgbox(numero)
 
    Dim CERRAR As String
    CERRAR = MsgBox("¿ELIMINAR SIC " & numero & " ?", MsgBoxStyle.YesNo)
    If CERRAR = MsgBoxResult.Yes Then
        cnn1.Open()
        DataGridViewSIC.Rows.Remove(NoFila)
 
       'ASUMO QUE FECHA ES STRING
        SQL3 = "DELETE * FROM Registro_SIC WHERE FECHA = '" & numero & '"
 
        Dim CMD As New OleDbCommand(SQL3, cnn1)
        CMD.ExecuteNonQuery()
        MsgBox("REGISTRO ELIMINADO")
        cnn1.Close()
    End If
End Sub
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