Access - Evitar duplicados con VBA

 
Vista:

Evitar duplicados con VBA

Publicado por Rubén (26 intervenciones) el 23/02/2004 14:26:54
Hola, recientemente he estado desarrollando un programa en ACCESS, el problema es que no se que código hay que agregar para que en el campo DNI salgo un MSGBOX diciendo que el registro está duplicado. Un saludo y gracias.
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

RE:Evitar duplicados con VBA

Publicado por Leo (343 intervenciones) el 23/02/2004 18:42:06
COn un Dlookup lo solucionas, en el evento despues 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

RE:Evitar duplicados con VBA

Publicado por Rubén (343 intervenciones) el 23/02/2004 19:18:46
Hola leo, ante todo darte las gracias por haberme dado una pista para resolver mi duda con este problema, lo que ocurre, que como podrás notar soy "novato" en la programación, he hecho lo que tu me has dicho, me he colocado en el editor de Visual BASIC, en el campo que yo tengo que es DNI y he introducido la instrucción, pero me dice que el argumento no es opcional, ¿Necesita una variable?, abajo te indico lo que he hecho:
Private Sub DNI_AfterUpdate()
Dim variable As Variant
DLookup ("DNI")
Else
MsgBox ("los datos no deberian repetirse")
End If
End Sub
Muchas gracias y perdona por molestarte.
Salu2
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

RE:Evitar duplicados con VBA

Publicado por Rubén (343 intervenciones) el 23/02/2004 19:19:25
Hola leo, ante todo darte las gracias por haberme dado una pista para resolver mi duda con este problema, lo que ocurre, que como podrás notar soy "novato" en la programación, he hecho lo que tu me has dicho, me he colocado en el editor de Visual BASIC, en el campo que yo tengo que es DNI y he introducido la instrucción, pero me dice que el argumento no es opcional, ¿Necesita una variable?, abajo te indico lo que he hecho:
Private Sub DNI_AfterUpdate()
Dim variable As Variant
DLookup ("DNI")
Else
MsgBox ("los datos no deberian repetirse")
End If
End Sub
mi correo es : [email protected]
Muchas gracias y perdona por molestarte.
Salu2
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

RE:Evitar duplicados con VBA

Publicado por leo (343 intervenciones) el 24/02/2004 13:17:17
DLookup ("[CampoDeLaTabla]", "NombredeLaTabla", "[NombreDelCampoAVerif] = " _
& Forms!FormularioActivo!NombreDelCampoQUeACtualizaste)
esa seria la sintaxis de la funcion
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

RE:Evitar duplicados con VBA

Publicado por José (3 intervenciones) el 02/04/2011 13:25:51
Hola Leo, a mi no me funciona me pone "se esperaba ="
y he escrito:
Private Sub NombreDelCampo_AfterUpdate()
Dim variable As Variant
DLookup ("[CampoDeLaTabla]", "NombredeLaTabla", "[NombreDelCampoAVerif] = " _
& Forms!FormularioActivo!NombreDelCampoQueACtualizaste)
Else
MsgBox ("los datos no deberian repetirse")
End If
End Sub

Si puedes ayudarme para averiguar el error.
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

RE:Evitar duplicados con VBA

Publicado por QUIQUE (293 intervenciones) el 02/04/2011 15:25:01
Buen día José probá con esto:
Fue escrito para un campo que se llama numerofactura de una tabla llamada facturaliquidaciones.
Esto debes ponerlo en el código del campo que vas a llenar en el evento BeforeUpdate.

Private Sub Nº_Factura_BeforeUpdate(Cancel As Integer)
Dim rst As DAO.Recordset, _
strSQL As String
strSQL = "SELECT [numerofactura] "
strSQL = strSQL & "FROM [facturaliquidaciones] "
strSQL = strSQL & "WHERE [numerofactura] ='" & Me.[Nº_Factura] & "'" ' Nº_Factura es el cuadro de texto del formulario
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
If Not rst.EOF And Not rst.BOF Then
MsgBox "ESTE REGISTRO YA FUE CARGADO", vbOKOnly + vbInformation, "ATENCION"
Me.Undo

End If
If Not rst Is Nothing Then
rst.Close
Set rst = Nothing
End If

End Sub

Espero que te sirva.

QUIQUE
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

RE:Evitar duplicados con VBA

Publicado por José (3 intervenciones) el 02/04/2011 16:49:54
Hola Quique, buenas tardes

Gracias por contestar,
Me sale error "3464 en tiempo de ejecución, No coinciden los tipos de datso en la expresión"
Depurar
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

Yo estoy haciendo esto en Access 2003 creo que no lo dije antes.

Gracias y 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