Saltar al contenido

Foco entre formularios

publicado

Buenos días a todos;

-Necesito de vuestra ayuda.

Para mejor comprensión adjunto enlace de un video y comentario.

Saludos y gracias de antemano

 

 

Adjunto también la macro.

MEvento.zipFetching info...

Featured Replies

publicado
  • Autor
  En 28/9/2021 at 16:35 , Gerson Pineda dijo:

Benito

Para dar foco a un objeto desde un formulario a otro, solo debes escribir sus nombres de formulario y objeto 

MiForm.Referencia.Setfocus

Inclúyelo en el botón "Ir"

 

Saludos

Buen día Gersón;

Primero agradecerte la ayuda y segundo he probado como comentas y no va.

Te dejo código por si ves algo raro.

Código evento frm_cobros:

Private Sub Texto_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean): On Error Resume Next
Dim Respuesta As String
Dim vcliente As Long
Set Formulario = Me

Conectar
   Sql = "SELECT * FROM tb_cliente WHERE nºcliente=" & Texto
rs.Open Sql, cnn, 1, 1

If rs.RecordCount > 0 Then
    frm_Cobros.TextBox50 = rs("nºcliente")
    frm_Cobros.TextBox51 = rs("nombre")
    frm_Cobros.TextBox64 = rs("fotoCliente")
   'Añadir imagen
    cargarImagen
   
Else
    Respuesta = MsgBox("El cliente es incorrecto, ¿Desea dar de alta este cliente?", vbYesNo, "Registrar:")
    If Respuesta = vbYes Then
        Cancel = True
'        Texto.SetFocus
        vcliente = Me.Texto.Value
        frm_Clientes.Texto.Text = vcliente
        frm_Clientes.Show
'        TextBox2.SetFocus
    End If
    If Respuesta = vbNo Then
        Cancel = True
        Texto.SetFocus
    End If
End If
End Sub

y código que he puesto en el frm_Clientes btn_Cuenta:

Private Sub btn_Cuenta_Click(): On Error Resume Next
Formulario.Texto = vcliente
Formulario.TextBox2.SetFocus
'frm_Cobros.TextBox2.SetFocus '<--He probado también así
Unload Me
End Sub

Corrígeme si me estoy equivocando.

Un abrazo.

publicado

Al igual que en el otro foro, el formulario frm_Cobros está corrompido.

publicado
  • Autor
  En 29/9/2021 at 8:37 , Antoni dijo:

Al igual que en el otro foro, el formulario frm_Cobros está corrompido.

Hola Antoni;

Te adjunto el archivo con el frm_Cobros hecho de nuevo.

Espero que ahora puedas ejecutarlo.

Saludos.

MEvento(2).zipFetching info...

publicado
  • Autor
  En 29/9/2021 at 15:44 , Antoni dijo:

Lo siento pero no va. ?

Hola Antoni, pues no se lo que falla, lo he abierto en otro pc con office 32bits y si problema.

Lo único que te envié el frm sin código y el código en un Bloc de notas.

No se me ocurre otra cosa.

Si quieres me avisas y mañana vuelvo a subir.

Gracias por la molestia. 

Un abrazo.

  • Gerson Pineda changed the title to Foco entre formularios
publicado
  • Autor
  En 29/9/2021 at 15:44 , Antoni dijo:

Lo siento pero no va. ?

Buen día Antoni;

No voy a ocuparte mas tiempo. Este es el último intento y sí no te va lo dejamos.

Adjunto archivo Zip y en el tienes la macro MExcel y la base de datos MAccess creados de nuevo.

En la MExcel solo tiene cargado un único formulario que es frm_Cobros y no tiene nada de código está en blanco, el código te lo he puesto en un bloc de notas.

Y por último en este mismo zip tienes los módulos y el resto de formularios que no he cargado a la macro por si acaso.

Espero que ahora no te salga ningún error.

A mi en ninguno de los dos me muestra ningún error.

Creo que ya te he comentado que el office es el 2019 de 32 bits. Inclusive ayer lo actualice.

Saludos y buen día.

Ahh y gracias por intentarlo.

MEvento(3).zipFetching info...

publicado

Definitivamente, el formulario frm_Cobros está corrupto, lo eliminas y todo se soluciona.

Último intento, exporta el formulario y súbelo.

publicado
  • Autor
  En 30/9/2021 at 16:27 , Antoni dijo:

Definitivamente, el formulario frm_Cobros está corrupto, lo eliminas y todo se soluciona.

Último intento, exporta el formulario y súbelo.

Hola Antoni,  corrígeme si me equivoco, tengo que eliminar el frm_Cobros y después hablas de exportar ¿?

Por lo que entiendo es que lo elimino y subo la macro sin el frm.

Es así (?).

Mañana la subo a ver sí entendí bien cualquier cosa me dices.

Un abrazo Antoni y disculpar tanto rollo. 

 

publicado

Exporta el formulario, elimínalo y sube por separado el archivo Excel, y los archivos .frm y .frx del formulario, la BD no es necesario.

publicado
  • Autor
  En 29/9/2021 at 22:00 , Gerson Pineda dijo:

Tu formulario esta raro, es posible que este corrupto

Pues haciendo pruebas, no tengo ningún problema

Te adjunto un ejemplo y lo pruebas

 

Saludos 

Foco entre formularios.xlsm 18.58 kB · 4 descargas

Gracias Gerson, muy bueno su ejemplo. 

Menos bueno mi frm que está corrupto.  

Voy a seguir los pasos que me ha dado Antoni y a ver si definitivamente conseguimos algo.

Un abrazo y gracias por su ayuda.  ? 

publicado
  • Autor
  En 30/9/2021 at 18:19 , Antoni dijo:

Exporta el formulario, elimínalo y sube por separado el archivo Excel, y los archivos .frm y .frx del formulario, la BD no es necesario.

Buenos días Antoni;

Te adjunto tres archivos:

1.-En el primero exporto el frm_Cobros y a continuación lo elimino y guardo la macro sin él. En el zip está la macro y el archivo frm_Cobros corrupto que he exportado.

2.-En el segundo zip lo que he hecho es exportar todos los frms y módulos y guardar la macro limpia.

Contiene todos los frms y módulos excepto el frm_Cobros.

3.-El tercer zip contiene una macro nueva con un frm_Cobros nuevo creado desde cero, es decir no he hecho copia y pega desde el corrupto.

Primero cree los frames y desde ellos he ido añadiendo labels y textbox. Dentro del frame si que he hecho copia y pega. Solo contiene este frm dos procedimientos que son para mostrar u ocultar otro fame.

 

Espero poder haberte ayudado así y cruzo los dedos para que por fin puedas abrirlo y ver el fallo que comentaba en el video.

Saludos y buen día.

Opción1.zipFetching info... Opción2.zipFetching info... Opción3.zipFetching info...

publicado

Vamos por partes.

La opción 1 no funciona, ni siquiera me deja importar el formulario. Está claro que el archivo .frx está mal.

El código VBA se puede recuperar sin problemas porqué el archivo .frm se deja abrir.

La opción 2 no tiene problemas, pero eso ya te lo había dicho yo, quitando el formulario no hay problema.

La opción 3 funciona ¿Y?

¿Y ahora qué?

¿No dispones de alguna copia de seguridad anterior a la última versión de la que puedas exportar el formulario?

publicado
  • Autor
  En 1/10/2021 at 8:44 , Antoni dijo:

Vamos por partes.

La opción 1 no funciona, ni siquiera me deja importar el formulario. Está claro que el archivo .frx está mal.

El código VBA se puede recuperar sin problemas porqué el archivo .frm se deja abrir.

La opción 2 no tiene problemas, pero eso ya te lo había dicho yo, quitando el formulario no hay problema.

La opción 3 funciona ¿Y?

¿Y ahora qué?

¿No dispones de alguna copia de seguridad anterior a la última versión de la que puedas exportar el formulario?

Buenos días Antoni;

Disculpa si llegan dos mensajes porqué creo que lo envié y ahora no aparece. 

En cuanto al tema, si puedes abrir la macro del zip.2 puedes importar a este el frm del zip. 3 que está  bien y una vez importado le agregas el código que te envié en un bloc de notas en el post anterior. Si no lo tienes te lo puedo pasar en formato. txt

Cita:

En la MExcel solo tiene cargado un único formulario que es frm_Cobros y no tiene nada de código está en blanco, el código te lo he puesto en un bloc de notas.

En cuanto a una copia puedo disponer pero igual pasa lo mismo ya que no sabemos desde cuando viene el problema. 

SI puedes componerlo así bien y sino no te rompas más la cabeza ya he abusado mucho de ti.

Te lo agradezco mucho Antoni, un abrazo. 

Me olvidaba, el frm_Cobros del tres tiene la misma estructura, los botones y textbox están nombrados igual.

publicado

Ya me he hecho un lio, ¿Qué tiene que ver el formulario del zip3 con el video de la petición?

Los archivos se corrompen de 1 en 1, por lo que si tienes alguna copia anterior, lo más probable es que funcione.

publicado
  • Autor
  En 1/10/2021 at 11:15 , Antoni dijo:

Ya me he hecho un lio, ¿Qué tiene que ver el formulario del zip3 con el video de la petición?

Los archivos se corrompen de 1 en 1, por lo que si tienes alguna copia anterior, lo más probable es que funcione.

Hola de nuevo Antoni;

-Ya para rematar adjunto la macro con del frm hecho desde 0 y una copia de seguridad.

Espero que te sirva y ahora si que ya no le doy mas vueltas. Sí no funciona tiro la toalla.

Un saludo y gracias por tú paciencia.

 

MExcel.xlsmFetching info... C.Seguridad20210518_13-50-04.xlsmFetching info...

publicado

Hola Benito

Por lo que puedo notar es que tienes la llamada al procedimiento Verificar en el evento BeforeUpdate de tu TextBox cuando deberias tenerlo en el evento Change y posteriormente en el evento AfterUpdate es donde validarías tu variable Vr para que si está en false, entonces haga la llamada al formulario para registrar el nuevo cliente y con ello ya tienes solucionado esa parte.

Lo otro es el orden de la tabulaciones de tus controles en donde el primer Frame debe ser 0, el segundo Frame debe ser 1 y el TexBox donde quieres el foco que sea 0 y en ese control con su indice de tabulación 0 tendrás el foco sin problemas.

Mis respetos @Gerson Pineda

publicado
  • Autor
  En 4/10/2021 at 3:00 , Enigma25 dijo:

Hola Benito

Por lo que puedo notar es que tienes la llamada al procedimiento Verificar en el evento BeforeUpdate de tu TextBox cuando deberias tenerlo en el evento Change y posteriormente en el evento AfterUpdate es donde validarías tu variable Vr para que si está en false, entonces haga la llamada al formulario para registrar el nuevo cliente y con ello ya tienes solucionado esa parte.

Lo otro es el orden de la tabulaciones de tus controles en donde el primer Frame debe ser 0, el segundo Frame debe ser 1 y el TexBox donde quieres el foco que sea 0 y en ese control con su indice de tabulación 0 tendrás el foco sin problemas.

Mis respetos @Gerson Pineda

Hola David;

He cambiado de evento tal y como comentas y ahora funciona correctamente.

Imagino que has podido abrir el archivo cosa que me alegra ya que al parecer había problemas a la hora de abrirlo.

Un abrazo y muy gradecido.

saludos también a Gerson y Antoni por su ayuda.

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.