Condición para ejecutar macro

Tengo una macro en access 2007 a la que quiero poner una condición para que se ejecute.

La condición sería: ejecútate sólo si la consulta "PedidosVencidos" tiene algún registro.

Se que parece sencillo, pero llevo un tiempo probando y leyendo y nada.

Respuesta
1

Hasta donde yo sé, debes combinar código VBA y macro para hacer lo que quieres.

Te explico:

1.- Abre tu BD y pulsa la combinación de teclas ALT+F11. Se te abrirá el editor de VB

2.- Te vas a menú Insertar -> Módulo

3.- En la ventana de código (la blanca que te aparece a la derecha, que te vendrá con una o dos líneas por defecto <option compare="" database=""> y </option><option explicit=""> (quizá esta última no te salga), escribes, debajo de esa/es línea/s, lo siguiente:

...

Public Function hayRegistros() As Boolean
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("PedidosVencidos", dbOpenSnapshot)
hayRegistros = True
If rst.RecordCount = 0 Then
hayRegistros = False
End If
End Function

...

4. Puedes guardar ese módulo con el nombre que te viene por defecto (Módulo1), o bien le pones algo así como mdlComprueba

5.- Abres la consulta y, en la columna de condición, escribes:

hayRegistros()=True

Y con eso debería ejecutarte la macro sólo si hay registros en la consulta.

</option>

Te rogaría que, si lo consideras conveniente, cerraras la pregunta.

Hola, he tenido que salir por trabajo varios días y no voy a poder probarlo, pero te agradezco tu ayuda y en cuanto vuelva me pongo con ello. Supongo que funcionará, cierro la pregunta.

Un saludo,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas