Problema Access 2003 campo único

Tengo un "problema". Tengo una base de datos que debe contener un campo único. Por ejemplo, para entendernos, supongamos que es un DNI.
El campo lo introduce el usuario, tiene el formato XX. XX.XX (tipo texto/independiente). He realizado un formulario para que el usuario pueda introducir el campo ciñiéndose al formato, pero no sé como hacer para que después de insertar la información, valide que no está ya dentro de la base de datos. Supongo que sera un evento; después de actualizar, pero desconozco el código que debo poner para que realice la búsqueda correctamente.
En caso de que la búsqueda localize que ese identificador ya está introducido, ¿cómo puedo hacer para que salga un mensaje de aviso que informe de la situación?

1 Respuesta

Respuesta
1
Si, el evento es después de actualizar. Y ahí puedes hacer un DCount para saber si existe alguno igual:
If DCount("*", "tla-tabla", "DNI='" & Me!txtIndependiente & "'") > 0 Then
  MsgBox "El DNI introducido ya existe. bla, bla, bla...."
End If
Xavi
Gracias por responder tan rapido, y siento haber tardado en contestar.
La verdad es que la situación es un poco más compleja. Tengo un formulario donde tengo distintos combox. De estos, me interesa ver 2: Estación y Identificador Prueba.
Una estación no puede tener repetido el campo identificador prueba (Podemos tener Atocha: 11.1.1 y Lavapiés: 11.1.1, pero no puede darse que teniendo previamente Lavapiés: 11.1.1 volvamos a introducir Lavapiés:11.1.1) y lo que pretendo es que cuando alguien rellene el formulario, en caso de estar repitiendo Estación y Identificador Prueba reciba un aviso que le prohíba continuar, puesto que está repitiendo.
La tabla que se llena com el formulario guarda el IdEstación y Identificador prueba (numérico).
Cuando tengas un momento, indícame como hacerlo possible por favor.
Muchas gracias
Si la tabla dónde guardas eso tuviera definida una clave compuesta (IdEstacion y Identificador prueba) el problema lo solucionaría el propio Access. ¿Lo tienes así? (Me temo que no, pero lo pregunto por si acaso..)
Pues ciertamente no lo tengo así. Esa tabla ya tiene una clave principal que no se puede cambiar.
La bbdd estaba acabada pero ha surgido ahora el tema de poner un identificador de prueba, y quiero añadir este cambio sin modificar el resto de la tabla en lo posible, ya que hay muchos formularios y consultas ya realizados y no quiero invertir mucho más tiempo en esto (quiero optimizar la solución, que sea lo más rápida y efectiva posible, no me malinterpretes).
A mi se me ha ocurrido hacer una función que compruebe si tienes la Estación y el Identificador entrados (se llamaría después de actualizar, evento). Cuando tengas los dos, se realiza la búsqueda, lo que pasa es que mis conocimientos escasos en VBA y SQL me impiden hacerlo.
Cabe decir que esta bbdd ha sido realizada con otras personas que ya no trabajan en ella, de ahí el hecho que quiera realizar el mínimo de cambios posible.
Pues se trata de hacer algo muy parecido a lo que teníamos antes:
If DCount("*", "latabla", "IdEstacion =" & Me!cboEstacion & " AND [Identificador prueba] = " & Me!cboIdentificadorPrueba) >0 Then.... ya existe al menos un registro con esa combinación.
El tema está en como tratar a partir de ese mensaje y dónde hacerlo. El evento Antes de actualizar de los 2 controles seria una posibilidad, ya que contiene la posibilidad de cancelar esa actualziación (Cancel = True) aunque también podrías hacerlo en el mismo evento pero del formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas