Estas en:
gratiszona
>>
trucos
>>
trucos access
trucos access: Evitar datos duplicados en el mismo campo
Aunque Access diga, al introducir datos en un campo clave principal en un nuevo registro, que ya existe en el campo clave principal de otro registro, avisa del error despues de que ya se ha producido, obligando a introducir todos los campos del registro duplicado hasta el final. Sin embargo, existe un procedimiento mediante el cual Access puede avisar de la duplicidad nada mas introducir el dato.
Lo primero es asegurarse de que el campo a comprobar esta indexado y es clave principal. Supongamos una base de datos de pacientes que ingresan en un hospital y el objetivo es detectar que no se repita el dato introducido en el campo NumHistoria.
Abrir el formulario en vista Diseño, elegir Ver/Codigo e incluir en el apartado General/Declaraciones (General a la izquierda y Declaraciones a la derecha) el siguiente codigo:
Dim BaseDatos as DataBase
Dim Pacientes as Recordset
Con ello se define que van a utilizarse dos objetos DAO o de acceso a datos: una base de datos y un recordset y asegurando que seran visibles en todos los procedimientos del formulario.
En el evento Al cargar del formulario incluir estas lineas de codigo:
Set BaseDatos = CurrentDB()
Set Pacientes = BaseDatos.OpenRecordset("PacientesIngresados",dbOpenTable)
La primera linea asigna la base de datos actual a la variable BaseDatos, la segunda asigna a la variable Pacientes los registros existentes en la tabla Pacientes Ingresados de la base de datos BaseDatos, y la abre de tipo tabla, es decir, se va a poder leer de ella por indice, que sera el que se indica con la siguiente instruccion que debe ir a continuacion de las dos anteriores:
Pacientes.Index = "PrimaryKey"
En el evento Antes de actualizar de la variable NumHistoria incluir:
Sub NumHistoria_BeforeUpdate (Cancel as integer)
Pacientes.Seek "=", NumHistoria
If Not Pacientes.NoMatch then
Msgbox "Num. de historia ya existente.",48
Cancel = True
Exit Sub
End If
End Sub
La instruccion que contiene Seek (que es un metodo que solo se puede utilizar con los Recordset abiertos con dbOpenTable), lo que hace es intentar encontrar en la tabla Pacientes alguno con el numero de historia igual a la variable NumHistoria, y va a buscar en numeros de historia porque al cargar el formulario ya sabe que el indice iba a ser la clave principal, que hemos supuesto que va por Numero de Historia.
Actualizado: 06/11/2008
Si has encontrado esta web de tu agrado, ¡ diselo a tus amigos ! Nos ayudas a cubrir gastos si con un simple SMS te bajas a tu movil un logo, un tono o una melodia polifonica desde:
www.gratiszona.com/moviles
www.conmovil.com
·
·