Código que falla al borrar los registros y compactar

Otra vez. Aquí va mi segunda pregunta de hoy, a ver si termino esta aplicación o si ella acaba conmigo :)

He aquí la cuestión:

Para probar la aplicación, estoy metiendo datos ficticios que luego eliminaré. Querría que el autonumérico empezase a contar desde uno al hacerlo, para lo que, primero elimino todos los registros y después compacto y reparo la bd. Y así el autonumérico se pone a cero. El problema es que en el primer formulario de introducción de datos (datos) en el cuadro de texto en el que pongo el dni (dni) del cliente, en el evento después de actualizar he puesto el siguiente código para comprobar si los datos existen y, de ser así, cargarlos automáticamente:
Docmd. Openform "consulta datos"
En este formulario hay un cuadro de texto (dni) una etiqueta (HAY) y un cuadro de lista (Solicitantes) basado en una consulta del mismo nombre que el formulario.
En el evento "al cargar" del formulario he puesto:
dni.Value = Forms!datos!dni.Value
Dim listcontrol As Control
Set listcontrol = Forms!consulta datos!Solicitantes
With listcontrol
If .ListCount >= 1 Then
HAY.Caption = " aparecen registros en la base de datos cuyos datos son los siguientes. Haz 'click' en la entrada correspondiente o pulsa en 'Modificar' para cambiar el DNI/NIE o en 'Otro' para añadir duplicados"
Solicitantes.Visible = True
Else
HAY.Caption = " no existe ningún registro. Haz 'click' en 'Aceptar' para introducir los datos manualmente o en 'Modificar' para introducir un nuevo NIF/NIE"
Solicitantes.Visible = False
End If
End With

Por otro lado, en la pestaña datos del cuadro de lista, en origen de la fila he puesto:

SELECT [Consulta datos].[Idcliente], [Consulta datos].[DNI], [Consulta datos].[Nombre y Apellidos], [Consulta datos].[FNacimiento] FROM Consulta datos WHERE ((([DATOS PERSONALES].[DNI])=Formularios!DATOS PERSONALES!dni)) ORDER BY [Idcliente];
Esto funciona bien siempre, salvo cuando compacto y reparo la bd sin registros para conseguir que el autonumérico se ponga a cero. En este caso en lugar de mostrar la etiqueta advirtiendo que no hay ningún registro, aparece el formulario en blanco, sin mostrar nada. Puedo solucionarlo metiendo un registro falso, con datos en los campos clave como el 1, pero me gustaría, si es posible no tener que hacer esto.

1 respuesta

Respuesta
1

Por lo que comentas, parece que el problema está en el origen del formulario (que es una consulta que no arroja registros ni permite añadirlos), o el formulario tiene la propiedad "Permitir Agregar" en la pestaña Datos en "No"

Comprueba estas dos cosas, a ver.

¡Gracias! 

Pues, en efecto, tienes toda la razón. Cambié el formulario, lo creé basándolo en la tabla directamente y no en una consulta y... Funciona a las mil maravillas.

Muchas gracias, no sé qué haría sin la ayuda que prestas a través de éste Foro.

Pd.: Siento haber tardado tanto en responder, pero preferí probar bien a fondo todo antes de comentar tu respuesta para así poder zanjar el tema. Gracias de nuevo.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas