VBA: una propiedad para vagos
27/06/2023VBA: Seleccionar un dato concreto de un listbox
29/06/2023'Código para incorporar en el formulario del campo que deseamos controlar Private Sub Form_Open(cancel As Integer) Call Auditoria(0, "", Me.Name, "Ha accedido a " & Me.Name) End Sub Private Sub Form_Close() 'Necesario para auditoría TempVars.RemoveAll End Sub Private Sub MiCampo_GotFocus() 'Necesario para auditoría TempVars!ValorInicial = Me.MiCampo.Value End Sub Private Sub MiCampo_LostFocus() Dim audittxtExt As String 'Comprobación para auditoría If TempVars!ValorInicial <> Me.MiCampo Then udittxtExt = "El campo ha cambiado de " & TempVars!ValorInicial & " a " & Me.MiCampo Call Auditoria(Me.MiId, "NombreCampo", Me.Name, "Acción realizada", audittxtExt) End If End Sub 'Código en módulo estándar Option Compare Database Option Explicit Public Function Auditoria(idaudit As Integer, campotxt As String, formtxt As String, AUDITTxt As String, Optional audittxtext As String) Dim strDate As String, strTime As String, strcod As String Dim rstTable As DAO.Recordset 'Creamos un código strDate = Format(Date, "ddmmyy") strTime = Format(Time, "mmss") strcod = "F" & strDate & strTime & "L" Set rstTable = CurrentDb.OpenRecordset("audit") rstTable.AddNew rstTable!auditf= Format(Date, "Short date") rstTable!audith= Format(Time, "Short time") rstTable!auditcampo = campotxt rstTable!auditcod = strcod rstTable!auditform = formtxt rstTable!audittxt= audittxt rstTable!audittxtext = audittxtext 'Se supone que la aplicación contiene un mecanismo para conocer el usuario actual 'Si es así, se pondría en idtraba la función que lo indique rstTable!idtraba = 1 ' Poner función rstTable.Update rstTable.Close Set rstTable = Nothing End Function
Destello 348 - Auditoría
1 archivo(s) 448.20 KB