HENRY_DAVID | |
| 2008-01-11 22:28 - Respuestas: 4 - Tema nº: 2493477
Características: Windows XP Profesional, 256, PIV,2.3GHZ,80GB.
Hola amigos, ojala me puedan ayudar, tengo un formulario pero quiero que en un determinado campo después de ingresar un dato me avise con un mensaje si el dato esta duplicado. Espero sus respuestas gracias.
| |
|
|
ebolo | |
|
Re: Dato duplicado en Access - 2008-01-13 19:22 - Respuesta 2
Hola Henry; ¿has probado, en el diseño de la tabla, a ese campo, poner en la propiedad Indexado=Si(sin duplicados?.
Esto evita tener duplicados en un campo, y si lo intentas añadir te dará un error.
Saludos.
| |
|
|
HENRY_DAVID | |
|
Re: Dato duplicado en Access - 2008-01-14 15:44 - Respuesta 3
Hola Ebolo gracias por responder, si he probado esa opción, pero el problema es que me salta el error solo cuando le doy guardar al formulario después de haber llenado los demás campos, yo quiero saber si puedo poner un código que después de ingresar el dato me salte un mensaje que el dato ya esta duplicado. Gracias de antemano Ebolo, como siempre ayudando a los demás. | |
|
|
ebolo | |
|
Re: Dato duplicado en Access - 2008-01-14 19:45 - Respuesta 4
Hola de nuevo; se me ocurre que puedas usar la función Dlookup(expresión, dominio,criterio) en el evento Despues de actualizar del xuadro de texto que quieras.
Elemplo sacado de la ayuda de access97:
El siguiente ejemplo devuelve información sobre el campo NombreCompañía del registro que cumple con los criterios. El dominio es la tabla CompañíasEnvíos. El argumento criterios restringe el conjunto de registros resultante a aquéllos para los que IdCompañíaEnvíos es igual a 1.
Dim varX As Variant
varX = DLookup("[NombreCompañía]", "CompañíasEnvíos", "[IdCompañíaEnvíos] = 1")
El próximo ejemplo de la tabla CompañíasEnvíos usa el control de formulario IdCompañíaEnvíos con el fin de proporcionar criterios para la función DBúsq (DLookup). Observe que la referencia al control no está incluida en los signos de comillas tipográficas que denotan las cadenas. De esta forma se garantiza que cada vez que se llame a la función DBúsq (DLookup), Microsoft Access obtendrá el valor actual del control.
Dim varX As Variant
varX = DLookup("[NombreCompañía]", "CompañíasEnvíos", "[IdCompañíaEnvíos] = " _
& Forms!CompañíasEnvíos!IdCompañíaEnvíos)
El siguiente ejemplo usa una variable, entBúsqueda, para obtener el valor.
Dim entBúsqueda As Integer, varX As Variant
entBúsqueda = 1
varX = DLookup("[NombreCompañía]", "CompañíasEnvíos", "[IdCompañíaEnvíos] = " _
& entBúsqueda)
Saludos.
| |
|
|
HENRY_DAVID | |
|
Re: Dato duplicado en Access - 2008-01-15 15:36 - Respuesta 5
De nuevo gracias Ebolo, estuve navegando por la ayuda de Access y encontré un código que se adapta a lo que quiero, y lo he adaptado ami formulario, el cual busca el registro si existe y me lo muestra pero si no lo encuentra deja el campo como esta, el problema es que me aparece: Error 3077 en tiempo de ejecución, Error de Sintaxis (falta operador) en la expresión. Es en la línea que voy a poner con negrita espero me puedan ayudar.
Private Sub TXTN_SERVICIO_GotFocus()
Dim rst As DAO.Recordset
Dim strsearchname As String
Set rst = Me.Recordset
strsearchname = CStr(Me!TXTN_SERVICIO) ****Es en esta línea*****
rst.FindFirst "N_SERVICIO= " & strsearchname
If rst.NoMatch Then
Me.Undo
End If
rst.Close
End Sub
P.D: El campo N_SERVICIO es una concatenación de dos campos y la ayuda de Access esta en la propiedad Recordset. Gracias y espero me puedan ayudar | |
|
|
|