Autorellenar si el registro ya esta en la tabla y si no aregarlo.

Tengo una tabla muy sencilla son 3 campos correo, departamento y municipio.

Lo que se tiene que capturar son los correos, y ya existe que no me deja volverlo a capturar y si no lo agregué, lo he intentado con cuadro combinado en dos tablas correos y otra con los tres campos para búsqueda pero solo se me agrega en la segunda tabla y no me lo identifica como repetido. También como asistente de búsqueda pero al no estar me tengo que salir de la tabla de captura para agregarlo a la de corres y volverme a meter a la de captura para agregar los tres campos.

2 respuestas

Respuesta

Rocío: Si el Origen de la fila del comboBox lo tienes de forma adecuada y sus propiedades bien establecidas, prueba ésto y me cuentas.

Si tienes dudas, crea el combobox desde cero con el asistente.

Private Sub CboCorreo_NotInList(StrNewData As String, IntResponse As Integer)
On Error GoTo CboCorreo_NotInList_TratamientoErrores
Dim Cbo As Access.ComboBox
Dim dbs As DAO.Database
Dim Rst As DAO.Recordset

Dim IntMsgDialog As Integer, IntResult As Integer
Dim TextoEntrada As String, NombreCampo As String,Mensaje As String
Dim MensajeUno As String,MensajeDos As String,Titulo As String, NombreTabla As String
'Nombre de la Tabla Origen de Fila del ComboBox
NombreTabla = "ElNombreDETuTabla"

'Tipo de elemento que se va a añadir a la Tabla
TextoEntrada = "Campo de Correo"’ El que se quiera
'El Nombre de Campo en el que se guardará el dato
NombreCampo = "NombreDeTuCampo"
'Para añadir
Set Cbo = Me.ActiveControl

‘Muestramos un mensaje preguntando si el usuario quiere añadir ese dato nuevo
Titulo = TextoEntrada & " NO ESTA EN LA LISTA"
IntMsgDialog = vbYesNo + vbExclamation + vbDefaultButton1
MensajeUno = "Quieres añadir "
MensajeDos = " una nueva entrada con: " & TextoEntrada & " ?"
Mensaje = MensajeUno + StrNewData + MensajeDos

IntResult = MsgBox(Mensaje, IntMsgDialog, Titulo)

If IntResult = vbNo Then
‘Cancelamos el añadir.
IntResponse = acDataErrContinue
Cbo.Undo
ElseIf IntResult = vbYes Then
'Añadimos el Nuevo dato a la Tabla.
Set dbs = CurrentDb
Set Rst = dbs.OpenRecordset(NombreTabla)
Rst.AddNew
Rst(NombreCampo) = StrNewData
Rst.Update
Rst.Close
'Continuamos sin mostrar el mensaje de Error por defecto.
IntResponse = acDataErrAdded
End If
CboCorreo_NotInList_Salir:
On Error GoTo 0
Exit Sub
CboCorreo_NotInList_TratamientoErrores:
MsgBox "Error " & Err & " en Procedimiento.: CboCorreo_NotInList de Documento VBA: XXXXXX (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume CboCorreo_NotInList_Salir
End Sub

No te olvides de activar el evento >> Al no estar en la lista: Jacinto

Rocío: Estaba repasando preguntas sin valoración y ésta es una de ellas.
Te agradeceré si la valoras, o si necesitas información adicional, me comentas.
Saludos >> Jacinto

Respuesta

Creo que el título de tu pregunta me confundió al principio, pero cuando leí la explicación de tu pregunta entendí que lo que quieres es que no se te repitan tus registro, o te avise cuando estos ya estén capturados. Pues si bien esto no es lo más avanzado, te puede servir, y no tiene que ver con el formulario sino con tu tabla, tendrás que establecer un "Indexado" "Si, sin duplicados" y listo, espero te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas