Evitar registro de duplicados en bd

Buen día agradezco mucho su colaboración no soy experto estoy empezando con esto de la programación y creación de formularios en Excel y visual, he diseñado un formulario para realizar el registro de dispositivos cuyos números son únicos para cada dispositivos, el formulario consta de un botón y la ventana de text y una ventanilla que cuenta el numero de dispositivos registrados, he colocado algunas condiciones, hasta aquí no hay problema, pero no he logrado realizar un código para que en el momento de realizar el registro del numero si este ya se encuentra en la base, no me permita registrarlo, me explico, que al momento de registrarlo me genero un aviso que me indica que el numero ya fue registrado, y no mepermita registrarlo de nuevo, trate con un contar. Si y luego lo programo comparándolo, pero el contar. Si, este me pone demasiado lenta la base y no es viable, además de que el número de registros es de más de 10.000, quedo atento si me pueden dar una mano con el tema.
Saludos,
andres

1 Respuesta

Respuesta
1
Utiliza esta función
Public Function verifica_duplicados(id As Variant)
' verifica si existe o no un registro en una determinada columna
' 0 si existe devuelve true si no devuelve false
Dim existe As Boolean
'4c7569735f50
If Application.WorksheetFunction.CountIf(Range("A:A"), id) > 0 Then
existe = True
Else
existe = False
End If
verifica_duplicados = existe
End Function
Como ves es un función que evalúa el argumento id y cuenta si existe en columna A de la hoja activa.
Para tu caso, lo puedes utilizar de la siguiente manera
En el evento click del botón que usas para registrar tu datos, antes de registra debes evaluar el dato, en este caso basta con realizar la llamada a la función
Así
respuesta=verifica_duplicados(textbox1)
En donde respuesta es una variable booleana declarada en el mismo evento click
Así luego solo evalúas la respuesta de la función
if respuesta=true then exit sub  ' si el registro existe no continua la ejecución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas