Establecer condición en botón de comando en access

Soy novato en el foro pero quería deciros que me han venido genial muchas de las respuestas de los expertos que he encontrado. Sin embargo aunque he mirado a fondo no he podido solucionar la duda que os expongo.
Tengo un formulario con un botón de comando que al hacer click ejecuta una consulta y abre un documento de combinación de correspondencia simultáneamente. De esta manera envío correos a las personas que cumplen los criterios de la consulta ejecutada.
Lo que pretendo, y no consigo, es que el botón de comando esté activado o visible solamente cuando la consulta ofrece resultados, ya que los criterios de la consulta son variables de tipo fecha y dependiendo de la fecha puede dar resultados o no.
Hasta ahora el código que tengo es el siguiente:
Private Sub Comando36_Click()
Ejecuta 1, "open", _
  "C:\ruta fichero.odt", "", "", 1
Dim stDocName As String
    stDocName = "Recordatorio confirmar fecha"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Comando39_Click:
    Exit Sub
Err_Comando39_Click:
    MsgBox Err.Description
    Resume Exit_Comando39_Click
    End Sub
Mi idea inicial era añadir al botón ya creado (comando36), un evento tipo "al mover el ratón" y poner una condición más o menos así:
si la consulta es <> Null then 
boton.enabled=true

1 Respuesta

Respuesta
1
Creo que podrías establecer una variable que compruebe si el valor de la consulta es o no nulo.
Después puedes utilizar un IF
Dentro del if, puedes especificar si dicho botón es visible o no, busca la estructura del if, que creo que te pueda ayudar, ahora mismo no tengo mucho tiempo, pero si saco unos minutos, te digo la estructura, ¿ok?
Gracias rifle69 por contestar con tanta rapidez. Te agradecería mucho si pudieras decirme la estructura y explicarme lo de la variable porque no tengo ni idea de código. Ten paciencia conmigo.
En cuanto al IF, tengo dudas porque todos los ejemplos que he visto es con Form_current() y en mi caso la condición no se refiere a un formulario activo
Espero no haberlo liado más.
Un saludo
La estructura del if es algo asi:
If Variable.Value <> NULL Then
  Me.Comando36.Visible = True
Else
  Me.Comando36.Visible = False
End If
Si me explicas un poco mejor el objeto de la consulta, a lo mejor te puedo ayudar mejor.
De todas maneras hay una opción que puedes ejecutar dicha consulta dentro de una variable, algo así:
Dim Variable As DAO.Recordset
        Set Variable = CurrentDb.OpenRecordset("ConsultaSQL")
Desde aquí creo que ya puedes ejecutar el If.
Intento explicarte lo que quiero conseguir. He creado una base de datos compuesta de cursos de formación y de alumnos que se inscriben en ellos. Y tengo que enviar una serie de recordatorios a los alumnos. En este caso tengo que enviarles un recordatorio cuando han pasado 2 semanas desde que se matricularon y no han confirmado la fecha. Para ello creé un botón de comando que ejecuta la consulta "Recordatorio confirmar fecha" (para listar los alumnos que todavía no ha confirmado la fecha del curso) y un documento de texto de combinación de correspondencia.
Y lo que quiero es que ese botón no esté activo o no sea visible cuando la consulta no devuelva ningún alumno al que avisar. De esa manera me evitaría tener que estar ejecutando la consulta todos los días por si hay alumnos que deban ser avisados.
En cuanto a la estructura que me has enviado, teniendo un campo DNI en la consulta, ¿cómo pongo la condición de que si la consulta no devuelve ningún DNI entonces el botón esté inactivo?. Es que no sé donde poner ni qué poner donde dices Variable. Value. No sé si hay que poner el nombredelaconsulta.nombredelcampo. Y tampoco sé si es necesario que la consulta se ejecute en segundo plano para saber si devuelve resultados o no
Agradezco sinceramente el tiempo que estás empleando
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas