Destacar cambios en tabla histórico
Publicado por Jesús Manuel (134 intervenciones) el 03/09/2013 13:49:39
Tengo dos tablas CLIENTES y HISTORICO_CLIENTE, en el que guardo las modificaciones de los campos de la tabla clientes o las eliminaciones.
Ahora necesito destacar (fondo o letra en otro color) los datos que se cambian en cada nuevo registro en HISTORICO_CLIENTE pero no tengo claro como poder hacerlo:
1) Para crear un nuevo registro en HISTORICO_CLIENTE tengo una función en el evento BeforeUpdate del formulario CLIENTES en el que se crea una cadena SQL que al ejecutarla crea el histórico. No se si se puede indicar en este paso, mediante código que el nuevo registro que se va a crear tenga un color de letra o de fondo determinado? Como sería?
El código de la cadena es el siguiente:
Private Sub HacerHistorial(ID As Long, OP As String)
Dim CNombre As Variant
Dim CApelllidos As Variant
Dim CNIF As Variant
Dim CTelefono As Variant
Dim CEmail As Variant
CNombre = DLookup("Nombre", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CNombre) Then
CNombre = "Null"
Else
CNombre = "'" & CNombre & "'"
End If
CApellidos = DLookup("Apellidos", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CApellidos) Then
CApellidos = "Null"
Else
CApellidos = "'" & CApellidos & "'"
End If
CNIF = DLookup("NIF", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CNIF) Then
CNIF = "Null"
Else
CNIF = "'" & CNIF & "'"
End If
CTelefono = DLookup("Telefono", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CTelefono) Then
CTelefono = "Null"
Else
CTelefono = "'" & CTelefono & "'"
End If
CEmail = DLookup("Email", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CEmail) Then
CEmail = "Null"
Else
MsgBox CEmail
MsgBox Me.Email.Value
If CEmail = Me.Email.Value Then
MsgBox "Campo co mesmo contido"
Else
MsgBox "Campo con contido novo"
End If
CEmail = "'" & CEmail & "'"
End If
Dim CadenaSQL As String
CadenaSQL = "INSERT INTO HISTORICO (ID_Cliente, Nombre, Apellidos, NIF, Telefono, Email, Tipo, Fecha_Actualizacion) VALUES (" & ID & ", " & _
CNombre & "," & _
CApellidos & "," & _
CNIF & "," & _
CTelefono & "," & _
CEmail & ", '" & _
OP & "', #" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#)"
CurrentDb.Execute CadenaSQL
End Sub
2) Tendría que comparar cada registro con el anterior (guardo una fecha de actualización para cada registro en HISTORICO_CLIENTES) para luego hacer el cambio de color? Como podría hacer la comparación?
Ahora necesito destacar (fondo o letra en otro color) los datos que se cambian en cada nuevo registro en HISTORICO_CLIENTE pero no tengo claro como poder hacerlo:
1) Para crear un nuevo registro en HISTORICO_CLIENTE tengo una función en el evento BeforeUpdate del formulario CLIENTES en el que se crea una cadena SQL que al ejecutarla crea el histórico. No se si se puede indicar en este paso, mediante código que el nuevo registro que se va a crear tenga un color de letra o de fondo determinado? Como sería?
El código de la cadena es el siguiente:
Private Sub HacerHistorial(ID As Long, OP As String)
Dim CNombre As Variant
Dim CApelllidos As Variant
Dim CNIF As Variant
Dim CTelefono As Variant
Dim CEmail As Variant
CNombre = DLookup("Nombre", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CNombre) Then
CNombre = "Null"
Else
CNombre = "'" & CNombre & "'"
End If
CApellidos = DLookup("Apellidos", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CApellidos) Then
CApellidos = "Null"
Else
CApellidos = "'" & CApellidos & "'"
End If
CNIF = DLookup("NIF", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CNIF) Then
CNIF = "Null"
Else
CNIF = "'" & CNIF & "'"
End If
CTelefono = DLookup("Telefono", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CTelefono) Then
CTelefono = "Null"
Else
CTelefono = "'" & CTelefono & "'"
End If
CEmail = DLookup("Email", "CLIENTES", "ID_Cliente =" & ID)
If IsNull(CEmail) Then
CEmail = "Null"
Else
MsgBox CEmail
MsgBox Me.Email.Value
If CEmail = Me.Email.Value Then
MsgBox "Campo co mesmo contido"
Else
MsgBox "Campo con contido novo"
End If
CEmail = "'" & CEmail & "'"
End If
Dim CadenaSQL As String
CadenaSQL = "INSERT INTO HISTORICO (ID_Cliente, Nombre, Apellidos, NIF, Telefono, Email, Tipo, Fecha_Actualizacion) VALUES (" & ID & ", " & _
CNombre & "," & _
CApellidos & "," & _
CNIF & "," & _
CTelefono & "," & _
CEmail & ", '" & _
OP & "', #" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#)"
CurrentDb.Execute CadenaSQL
End Sub
2) Tendría que comparar cada registro con el anterior (guardo una fecha de actualización para cada registro en HISTORICO_CLIENTES) para luego hacer el cambio de color? Como podría hacer la comparación?
Valora esta pregunta


0