Saltar al contenido

Foco entre formularios


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.

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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. 

 

Enlace a comentario
Compartir con otras webs

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.  ? 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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?

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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.

 

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 93 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • No va a ser necesario distinguir el tipo de proceso entre 1 y 2. Revisa el adjunto a ver si es eso lo que quieres. Function MediaAttention(mImp As Range, _ q25 As Range, q50 As Range, _ Optional q75 As Range, _ Optional q100 As Range) As Double '-- Opción 1 If q75 Is Nothing And q100 Is Nothing Then MediaAttention = q25 / q50 Exit Function End If '-- Opción 2 MediaAttention = ((0.25 * (q25 - q50)) / mImp) + _ ((0.5 * (q50 - q75)) / mImp) + _ ((0.75 * (q75 - q100)) / mImp) + _ (q100 / mImp) End Function   Media Attention Formula 1.2.xlsb
    • Gracias tomarse el tiempo de leer por responder Maestro @Antoni Adjunto el archivo con la idea a la que deseo llegar, sigo atento. Mil gracias por el tiempo y la ayuda brindada   Media Attention Formula 1.2.xlsb
    • He analizado la UDF y entiendo perfectamente lo que hace, lo que no entiendo es lo que pretendes hacer. Mejor sube un ejemplo resuelto de  como debería funcionar la UDF con los nuevos parámetros solicitados. 
    • Gracias, ya lo conseguí solucionar
    • Hola a todos Primero que nada deseo agradecer el tiempo en leer este post, Muchas Gracias. Me acerco a ustedes para pedir su ayuda para lo siguiente: Tengo una UDF, la cual tiene dos escenarios: 1.- Si Tiempo Promedio y Duración del Video son diferentes de 0, hacer el calculo 2.- Si lo anterior es igual a 0, se realiza el otro calculo por cuartiles. El detalle es que son muchas celdas a seleccionar, lo cual creo puede ser engorroso, entonces, pensando en simplificar la función, me pregunte si fuera posible: a.- Colocar 1 al principio de la función y después solo seleccionar 2 celdas correspondientes (Rango continuo o discontinuo) b.- Colocar 2 al principio de la función y después seleccionar las 5 celdas correspondientes (Rango continuo o discontinuo) Espero me puedan ayudar y/o orientar al respecto, quedo atento para cualquier duda, de antemano les agradezco cualquier ayuda brindada. Mil Gracias!! Media Attention Formula 1.1.xlsb  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.