Jump to content

Foco entre formularios


Go to solution Solved by Enigma25,

Recommended Posts

Hace 15 horas, 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.

Link to comment
Share on other sites

Hace 2 horas, 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.

Link to comment
Share on other sites

  • Gerson Pineda changed the title to Foco entre formularios
Hace 15 horas, 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).zip

Edited by Benito Bartolomé
Link to comment
Share on other sites

Hace 47 minutos , 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. 

 

Link to comment
Share on other sites

Hace 22 horas, 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.  👍 

Link to comment
Share on other sites

Hace 13 horas, 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.zip Opción2.zip Opción3.zip

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Posted (edited)
Hace 45 minutos , 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.

Edited by Benito Bartolomé
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Hace 4 horas, 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.xlsm C.Seguridad20210518_13-50-04.xlsm

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Hace 14 horas, 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.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Privacy Policy