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.