** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error en el formulario de búsqueda
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Error en el formulario de búsqueda

 Responder Responder
Autor
Mensaje
Joseamarq Ver desplegable
Nuevo
Nuevo


Unido: 20/Mayo/2012
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Joseamarq Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Error en el formulario de búsqueda
    Enviado: 29/Marzo/2023 a las 17:32
Necesito ayuda con el siguiente código. 

Tengo un formulario con un campo de texto que busca en cualquier parte de un subformulario:

Private Sub txtBusquedatrab_AfterUpdate()

          Dim Consultae As String
          
     
        Consultae = "SELECT  TOP 25 [Fecha de creación],[Fecha de modificación],Id_documento,Nombre,apellido_1,apellido_2, alum_cifempresa"
        Consultae = Consultae & " FROM tbl_alumnos"
        Consultae = Consultae & " WHERE (Nombre Like '*" & Me.txtBusquedatrab & "*'"
        Consultae = Consultae & " OR apellido_1 Like '*" & Me.txtBusquedatrab & "*'"
        Consultae = Consultae & " OR apellido_2 Like '*" & Me.txtBusquedatrab & "*')"

        
        Forms![frm_alumnos_general]![frm_lista_alumnos_sinempresa].Form.RecordSource = Consultae
  
End Sub

Private Sub txtBusquedatrab_Change()
                          
        Me.frm_lista_alumnos_sinempresa.SetFocus
        Me.txtBusquedatrab.SetFocus
        Me.txtBusquedatrab.SelStart = 100
             
End Sub



Funciona perfectamente introduciendo cualquier texto menos cuando se introduce "nu"

Que da el siguiente error:

Error 2110
No puede mover el foco al control frm_lista_alumnos_sinempresa


Alguien me puede ayudar?

Gracias y saludos
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 29/Marzo/2023 a las 22:52
Puede ser que ese "nu" no devuelva ningún resultado, por lo que ese subformulario no muestra controles. Y al no haber controles, no puede recibir el foco.

Teniendo en cuenta que primero envías el foco a un formulario, y justo después lo envías a un cuadro de texto, ¿no puedes eliminar/comentar ese envío de foco al formulario?
Arriba
Joseamarq Ver desplegable
Nuevo
Nuevo


Unido: 20/Mayo/2012
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Joseamarq Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 30/Marzo/2023 a las 07:48
Hola pitxiku,

si hay registro para "nu". Aun así cuando hago búsquedas con textos en el que no hay registros, por ejemplo "kgdjd", simplemente no devuelve nada, que es lo que quiero, pero no da error.

He intentado, tal como has comentado, eliminar, en primer lugar: 

 Me.frm_lista_alumnos_sinempresa.SetFocus

Y nada... no funciona

Luego he intentado eliminar 

Me.txtBusquedatrab.SetFocus

Y tampoco...

La cuestión es que solo da error cuando introduzco "nu"
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 30/Marzo/2023 a las 22:12
¿Sólo tienes ese código en el formulario y subformulario?

Como sólo haces la búsqueda al acabar de escribir (evento AfterUpdate), puedes probar a quitar completamente el evento Change y probar.

Otra prueba más es sacar a la ventana Inmediato la consulta que has construido para el subformulario, copiarla y usarla en una consulta nueva, como origen de un formulario, ... para ver si te da algún error.

Private Sub txtBusquedatrab_AfterUpdate()

          Dim Consultae As String
          
     
        Consultae = "SELECT  TOP 25 [Fecha de creación],[Fecha de modificación],Id_documento,Nombre,apellido_1,apellido_2, alum_cifempresa"
        Consultae = Consultae & " FROM tbl_alumnos"
        Consultae = Consultae & " WHERE (Nombre Like '*" & Me.txtBusquedatrab & "*'"
        Consultae = Consultae & " OR apellido_1 Like '*" & Me.txtBusquedatrab & "*'"
        Consultae = Consultae & " OR apellido_2 Like '*" & Me.txtBusquedatrab & "*')"

Debug.Print Consultae
        
        Forms![frm_alumnos_general]![frm_lista_alumnos_sinempresa].Form.RecordSource = Consultae
End Sub
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable