Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: lucius en Octubre 08, 2011, 08:55:14 pm
-
Quiero hacer una funcion publica para eliminar un registro de equiz tabla y reducir codigo ya que este se repite infinidad de veces.
La idea es pasarle como parametro el id, valor del id, tabla y recordset
Call FCN_delete("48", "Lectora LG", "Articulos", rsArticulos)
Ademas tambien se hace un comprobacion para ver si el registro fue eliminado desde otra pc de la red, nose que tan util puede ser eso, en fin :-\
Como ven esta funcion o acaso le estoy dando mucha vuelta para algo tan basico yo la he reducido a mi modo aunque creo que esta bastante rustico??
Public Sub FCN_delete(Campo As String, Campo_value As String, Tabla As String, rsTabla As Recordset)
Dim rs As Recordset
Dim a As String
a = "SELECT " & Campo & " FROM " & Tabla & " WHERE " & Campo & "=" & "'" & Campo_value & "'"
Set rs = cn.Execute(a)
On Error GoTo VerError
Dim MENSAJE
MENSAJE = MsgBox("Esta seguro de eliminar el registro", vbYesNo, "Eliminando datos")
If MENSAJE = 6 Then
'Comprueba si el registro fue eliminado desde otro punto.
If rs.RecordCount = 0 Then MsgBox "El registro fue eliminado desde otro equipo de la red, por lo tanto no necesita ser eliminado.", vbCritical
If Not rs Is Nothing Then rs.Close: Set rs = Nothing
cn.Execute ("DELETE FROM " & Tabla & " WHERE " & Campo & "=" & "'" & Campo_value & "'")
rsTabla.Requery
End If
Exit Sub
VerError:
MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
End Sub
-
Lo edite aca pero mas o menos lo haria asi.
Public Sub FCN_delete(Campo As String, Campo_value As String, Tabla As String, rsTabla As Recordset)
Dim rs As Recordset
Dim a As String
On Error GoTo VerError
if MsgBox("Esta seguro de eliminar el registro", vbYesNo, "Eliminando datos") = vbno then
exit sub
end if
'Comprueba si el registro fue eliminado desde otro punto.
a = "SELECT " & Campo & " FROM " & Tabla & " WHERE " & Campo & "=" & "'" & Campo_value & "'"
Set rs = cn.Execute(a)
If rs.RecordCount = 0 Then
MsgBox "El registro fue eliminado desde otro equipo de la red, por lo tanto no necesita ser eliminado.", vbCritical
exit sub
end if
'If Not rs Is Nothing Then rs.Close: Set rs = Nothing
cn.Execute ("DELETE FROM " & Tabla & " WHERE " & Campo & "=" & "'" & Campo_value & "'")
'rsTabla.Requery
'End If
Exit Sub
VerError:
MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
End Sub
-
Excelente.