No puedo validar registro antes de abrir formulario

Espero puedan ayudarme... Tengo un informe de donde realizo el llamado mediante un mensaje para abrir dos formulario independientes usando un criterio para abrir el formulario que necesito. Ahora bien, uno de esos formularios me permite registrar que fue atendido y registro queda almacenado en un campo casilla, pero cuando vuelvo al informe ese registro permanece como histórico y quiero evitar que el usuario cuando lo vuelva a seleccionar me ejecute un comando que valide si la casilla este con registro, me envié mensaje de que ya fue atendido y cancele el abrir formulario en el comando.

Logre hacer algo parecido en el formulario que abro, me envía el mensaje pero igual se abre, por lo que debe hacerlo dentro del comando del informe. Este es la línea de comando...

Private Sub subAbroCita(laHora As Date, numFecha As Byte)
    Dim laFH As String
    Dim laFecha As Date
    laFecha = pSemana + numFecha - 1
    laFH = laFecha & laHora
    If DCount("*", "TCitas", "FHCita='" & laFH & "'") = 0 Then
        DoCmd.OpenForm "FCitas", acNormal
        With Forms!FCitas
            .FechaCita = laFecha
            .HoraCita = laHora
            .MotivoCita.SetFocus
        End With
    Else
Dim Ficha As Integer, mensaje As Integer
mensaje = vbYesNo + vbDefaultButton1 + vbInformation
Ficha = MsgBox("Para iniciar atención del paciente, presione Sí" & vbNewLine & "Para modificar cita, presione No", mensaje, "Registro Agendamiento")
                If Ficha = vbYes Then
       'Aqui necesito validar si el paciente ya fue atendido?
       'Si es si ejecute la linea a continuación
          DoCmd.OpenForm "FCitas_Atencion", , , "FHCita='" & laFH & "'"
        'Si es no, cancele la apertura del formulario
                End If
                If Ficha = vbNo Then
        DoCmd.OpenForm "FCitas_Modifica", , , "FHCita='" & laFH & "'"
                End If
    End If
End Sub

Debo mencionar que todos los registros, están en la misma tabla "TCitas" y su común denominador es la columna "FHCita"

1 Respuesta

Respuesta
1

Sería antes de abrir el formlulario Fcitas_Atencion algo como:

IF nz(Dlookup("[Atendido]","Tcitas","IdCita=" & Me.IdCita),0) =- 1 then 

  DoCmd.OpenForm  Fcitas_Atencion, , , "idCita=" Me.Idcita

End If

Veo que esta validando es con Fecha Y hora, me parece innecesario porque las citas tienen un IdCita que permite ubicar al registro. Supongo que el formulario tiene en alguna parte el campo IdCita..

¡Gracias! Eduardo... me fue muy efectivo tu solución, solo realice unos cambios y resulta a la perfección. Lo deje así...

Private Sub Form_Open(Cancel As Integer)

If Nz(DLookup("[Atendido]", "Tcitas", "IdCita=" & Me.IdCita), 0) = -1 Then

MsgBox "El paciente ya fue atendido", vbInformation + vbOKOnly, "AVISO"

DoCmd.Close acForm, "FCitas_Atencion"

End If

End Sub

Muchas gracias por su ayuda...

Me alegro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas