Access - Autocompletar en el mismo formulario.

 
Vista:

Autocompletar en el mismo formulario.

Publicado por Gustavo (10 intervenciones) el 30/05/2007 14:44:14
Hola a tod@s:
Tengo un formulario llamado "Clientes" compuesto por los siguientes campos: IDCLIENTE, NOMBRES, APELLIDOS, DIRECCION, TELEFONO. Por vista de diseño del formulario creo un cuadro combinado para que me busque por IDCLIENTE. Mi interés es que cuando busque el IDCLIENTE y éste no exista, me saque un mensaje en tal sentido y me permita ir al próximo registro nuevo (vacío) para ingresarlo dentro del mismo formulario. 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
Imágen de perfil de Alejandro

Manejar búsqueda de IDCLIENTE inexistente y creación de nuevo Registro

Publicado por Alejandro (4142 intervenciones) el 10/08/2023 23:45:27
Puedes lograr tu objetivo utilizando el evento `AfterUpdate` del cuadro combinado de búsqueda. Aquí tienes los pasos para hacerlo:

1. Crear un cuadro combinado para búsqueda:
Asegúrate de que ya has creado el cuadro combinado para buscar por IDCLIENTE y que está enlazado al campo correspondiente.

2. Evento AfterUpdate del cuadro combinado:
Abre la vista de diseño del formulario y selecciona el cuadro combinado. Ve a la ventana de propiedades del cuadro combinado y selecciona la pestaña "Eventos". Busca el evento `Después de actualizar` (AfterUpdate) y haz doble clic en el recuadro en blanco al lado de ese evento para generar automáticamente un procedimiento de evento.

3. Código VBA para manejar la búsqueda y creación:
Dentro del procedimiento del evento `Después de actualizar`, agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub TuCuadroCombinado_AfterUpdate()
    Dim rs As DAO.Recordset
    Dim strSQL As String
 
    ' Verificar si el IDCLIENTE existe en la tabla
    strSQL = "SELECT * FROM Clientes WHERE IDCLIENTE = '" & Me.TuCuadroCombinado & "'"
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
 
    If rs.EOF Then
        ' Mostrar mensaje y agregar un nuevo registro
        MsgBox "El IDCLIENTE no existe. Se creará un nuevo registro.", vbExclamation, "Cliente no encontrado"
        DoCmd.GoToRecord , , acNewRec
        Me.IDCLIENTE = Me.TuCuadroCombinado
    End If
 
    rs.Close
    Set rs = Nothing
End Sub

Asegúrate de reemplazar `TuCuadroCombinado` con el nombre real del cuadro combinado y `Clientes` con el nombre real de la tabla.

Este código verifica si el IDCLIENTE ingresado en el cuadro combinado existe en la tabla. Si no existe, muestra un mensaje de advertencia y crea automáticamente un nuevo registro en el formulario con el IDCLIENTE ingresado.

Recuerda que este enfoque asume que el IDCLIENTE es un valor único y que no permitirá duplicados en la tabla.

Guarda el formulario y prueba el comportamiento al buscar un IDCLIENTE. Si el IDCLIENTE no existe, se creará un nuevo registro para ingresarlo.
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