Abrir Formulario dependiendo de no existencia registro en tabla

Vuelvo a recurrir a su ayuda... Necesito registrar datos solo una única vez en una tabla.

Tengo un formulario de INICIO en blanco con temporizador que al cerrase corra un código que me permita hacer un If y donde revise dos condiciones y de acuerdo a eso me habrá los formularios que necesito, los pasos de validación son los siguiente:

.- PASO 1: SI al cerrarse formulario INICIO valide o busque en la TablaRegistroEmpresa que no existe ningún registro en ella y me abra el formulario asociado a esa tabla para registrar datos por primera vez. Y al guardar los datos ingresados en ese formulario, tengo un campo casilla que se llena automáticamente con el valor -1, para así validar que se guardo el registro. NOTA; La tabla no le tengo una clave principal, por que solo se registrara un sola linea de datos.

.- PASO2: SI al cerrarse formulario INICIO valide o busque en la TablaRegistroEmpresa que SI EXISTE registro y el campo casilla tenga el valor -1, me abra otro el formulario llamado XXXX.

Use la función if y DLookup, pero no me resulta. Este es mi código en el formulario INICIO

Option Compare Database
Option Explicit
Dim Contador As Integer
Private Sub Form_Close()
Dim Estado As Integer
If Estado = DLookup("[FCompletado]", "Tabla_RegistroEmpresa", [FCompleto] = 0) Then
    DoCmd.OpenForm "RegistroEmpresa", , , , , , Estado
End If
If Estado = DLookup("[FCompletado]", "Tabla_RegistroEmpresa", [FCompleto] = -1) Then
    DoCmd.OpenForm "LOGIN", , , , , , Estado
End If
End Sub
Private Sub Form_Open(Cancel As Integer)
    Contador = 0
End Sub
Private Sub Form_Timer()
    Contador = Contador + 1
    If Contador = 50 Then
        DoCmd.Close
    End If
End Sub

Este es error que me envía

Este es mi formulario donde registrare los datos, dependiente de la Tabla_RegistroEmpresa...

2 respuestas

Respuesta
2

Si quieres usar la variable Estado allá tú, pero no es necesario, si la quieres usar ponla como

Din estado as byte

estado=dcount("*","tablaregistroempresa)=0 then

docmd.openform....

else

docmd.openelotroform

end if

Pero efectivamente puedes ponerlo directamente

If dcount("*.....

¡Gracias! Julián, super sencillo el comando, el que sabe... sabe... a mi me falta mucho que aprender... intente hacerlo de otro comando que me sirvió para otra cosa, pero vi que estaba bien perdido...

Gracias por su ayuda y conocimientos...

Respuesta
1

Tu casilla de verifiación ¿se llama FCompletado o FCompleto?, porque en el DLookuk usas los dos y me parece que uno es un error...

De todas formas, tienes otra forma de hacer esa validación:

Private Sub Form_Close()
If DCount("*", "Tabla_RegistroEmpresa")= 0 Then
    DoCmd.OpenForm "RegistroEmpresa", , , , , , Estado
Else
    DoCmd.OpenForm "LOGIN", , , , , , Estado
End If
End Sub

Y no te hace falta verificar la casilla, ya que dices que siempre se marca a Verdadero al guardar el registro único de la tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas