Access - No añadir un registro si ya existe

   
Vista:

No añadir un registro si ya existe

Publicado por EquisDe (3 intervenciones) el 29/12/2011 11:10:23
Buenas,

Estoy realizando un proyecto y me surge una duda;

Resulta que tengo un formulario el cual tiene un Boxlist que me muestra "x" numero de registros (el total de registros introducidos en una tabla). Cada vez que añado o borro registros en el mismo formulario (dispongo de un boton de añadir y eliminar) el mismo box se actualiza borrando o añadiendo los registros. La duda me surge a la hora de añadir un registro existente.

Soy capaz de crear que me salga un msgbox diciendo "Este registro ya estaba añadido", no obstante, me lo añade de todas formas. Lo que necessito es que ademas de salir el mensaje me cancele el evento de añadir mensaje.
- Para guardar el registro utilizo un evento sobre un boton "guardar" --> Al hacer click (es una "macro incrustada" que realiza las funciones de "ejecutar comando -> guardar registro".
- Para que salga el msgbox de "ya existe registro" lo tengo en un evento del formulario llamado "despues de actualizar".

Supongo que el problema viene dado porque se realizan las dos tareas (independientemente) por lo que se ejecutan las dos. Creo que deberia implementarlo en un solo evento el cual cancelara la accion de añadir registro si salta el msgbox.

Me podeis ayudar con que código deberia actualizar y en que funcion para que me resulte?

Muchas gracias por adelantado y espero haberme explicado con claridad.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No añadir un registro si ya existe

Publicado por Emilio (221 intervenciones) el 29/12/2011 15:44:29
Mi tocayo el maestro Emilio Sancha tiene un ejemplo sobre eso miralo:

http://www.mvp-access.es/emilio/Access/Descargas.asp

(Ejemplo nº: 98) Access 2000 o superior

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por Robinson (1 intervención) el 20/07/2014 01:58:41
No me funciona al aplicarlo al formulario me da el error 3464 en proce (No coinciden los tipos de Datos en la Expresion de criterios.)

Tengo una tabla llamada clientes, con el campo principal Idcliente el cual es númerico, si yo cambio el tipo de dato de Idcliente a texto me funciona, pero requiero que sea un número como puedo editar el código para que funcione sin necesidad de cambiar el tipo IdCliente a texto en la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique Ramírez

No añadir un registro si ya existe

Publicado por Enrique Ramírez (617 intervenciones) el 29/12/2011 17:09:06
si numero de empleado es numerico
Dim var As Integer
var = Nz(DLookup("[NoEmpleado]", "Empleados", "[NoEmpleado] = " & Val(Me.txt_empleado.Value) & ""))
If var > 0 Then
MsgBox "Ya existe este empleado", vbOKOnly + vbInformation, "Aviso"
Me.txt_empleado.SetFocus
Exit Sub
End If

si numero de empleado es texto:
Dim var As String
var = Nz(DLookup("[NoEmpleado]", "Empleados", "[NoEmpleado] = '" & Me.txt_empleado.Value & "'"))
If Not IsNull(var) Then
MsgBox "Ya existe este empleado", vbOKOnly + vbInformation, "Aviso"
Me.txt_empleado.SetFocus
Exit Sub
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por EquisDe (3 intervenciones) el 09/01/2012 12:00:40
No entiendo mucho la respuesta, no me acaba de funcionar.

Porque campos debo sustituir "NoEmpleado" y "Empleados"?: Ejemplo
- NoEmpleado es "el nombre de la etiqueta donde escribo el registro"....
- Empleados es el nombre del CombBox.....

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por Jaime (1 intervención) el 08/01/2012 06:10:53
Ya intentaste hacerlo en el evento "Antes de actualizar"?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por EquisDe (3 intervenciones) el 09/01/2012 12:04:26
Que deberia poner en el evento "Antes de actualizar"?

Yo tengo puesto esto en despues de actualizar en formulario:

If DCount("PAR", "Par", "[PAR]=[forms]![Par]![PAR]") > 1 Then
MsgBox "Este registro ya existe"
DoCmd.CancelEvent
End If

Lo he probado en poner despues de actualizar pero no sirve de nada, ni siquiera sale el mensaje y me sigue agregando el registro...

:(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por luis eduardo (1 intervención) el 14/09/2012 05:56:43
COMPAÑERO LA ULTIMO EJEMPLO CAMBIAR > 1 por mayor 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por zaicrofs zaicrofs_id@hotmail.com (1 intervención) el 02/01/2016 22:55:15
ya intentaste poner una validación verdadera o falsa ? yo lo tengo asi y me funciona para saber si un registro ya ingreso para q solo de salida y si no a ingresado abre la entrada.
si no lo tienes resuelto dime te mando mi codigo jejeje.
saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No añadir un registro si ya existe

Publicado por Enrique Heliodoro (1663 intervenciones) el 03/01/2016 10:34:06
Creo que hace algo como cuatro años que lo ha resuelto (no hay post posteriores), aun así puedes publicar tu particular solución.

Problema que también se puede resolver indexando como único ese campo de la tabla (lo que aportaría la ventaja de que 'funcionaria' aun sin validar en el formulario) seria eficaz en un entorno multi-usuario y/o en una inserción directa y solo se le podía poner como 'pega' que indicaría el error al intentar duplicar esto es: guardar el registro (la validación en el formulario solo sirve para evitar el molesto mensaje de error).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar