Ejecutar una macro después de borrar un registro
Tengo un formulario donde introduzco autores. Para tener un control de los autores que no tienen asociados libros, he creado otro formulario para que me diga si hay o no, y los pueda borrar. Bien, pues quiero inhabilitar el botón que da acceso a ese segundo formulario cuando no haya autores "vacíos".
Para ello, he creado dos funciones:
Public Function ContarLimpiarAutores() As String Dim rst As DAO.Recordset Dim strSQL As String strSQL = "SELECT TAutores.Autor, DCount('[Autor]','[TLibros]','[TLibros].[Autor]=' & [TAutores].[ID]) AS Veces" _ & " FROM TAutores" _ & " WHERE (((DCount('[Autor]','[TLibros]','[TLibros].[Autor]=' & [TAutores].[ID]))=0))" Set rst = CurrentDb.OpenRecordset(strSQL) 'Aquí pondrías el select completo If rst.RecordCount > 0 Then Do While Not rst.EOF rst.MoveNext Loop End If If rst.RecordCount = 0 Then Else ContarLimpiarAutores = rst.RecordCount End If rst.Close Set rst = Nothing End Function
Public Function DesactivarAutores(FName As Form) If ContarLimpiarAutores() = "" Then FName.CmdLimpieza.Enabled = False Else FName.CmdLimpieza.Enabled = True End If End Function
Y en el formulario, llamo a esta función en los eventos "Después de insertar un registro" y en "Después de eliminar". Sin embargo, en este último caso, cuando elimino un registro, no me inhabilita el botón.
¿Sabes por qué puede ser?
1 respuesta
Respuesta de Julián González Cabarcos
2