Abrir formulario de otro formulario con formato autoajustable

Quería pedirles de su ayuda. El problema que tengo es que cuando necesito ingresar un repuesto que no está en la lista en una factura de compra, el formulario que me abre es el de artículos, pero al abrir cubre toda la pantalla y me gustaría que se abriera sin ocultar la barra de herramientas de windows. Este formulario al abrirlo de forma independiente ya lo pudo configuar para que se autoajuste en las propiedades del formato, pero aun no he podido hacer que lo haga al abrirlo del formulario de compras. Este es el codigo que tengo en al no estar en la lista.

Private Sub CODIGO_ARTICULO_FC_NotInList(NewData As String, Response As Integer)
Beep
Dim CodigoArticulonuevo As Integer, título As String 
título = "EL CODIGO NO ESTA EN LA LISTA"
CodigoArticulonuevo = MsgBox("DESEAS AGREGAR ESTE CODIGO", vbYesNo + vbQuestion, título)
If CodigoArticulonuevo = vbYes Then
DoCmd.OpenForm "ARTICULOS", acNormal, "", "", acFormAdd, acDialog, NewData
Response = acDataErrAdded
End If
End Sub

3 respuestas

Respuesta
2

Ábralo con las propiedades Emergente y Modal en SI, además, en formato "Estilo de los bordes" déjelo en "Ajustable". Si no le funciona aplique Move Size como le indican.

Respuesta
1

Normalmente los formularios que se abren como emergentes, toman las dimensiones del tamaño que se les dio en diseño, si ocupa toda la pantalla es porque se les activo esa propiedad (maximizar).

Si se desea modificar sus dimensiones y posición en tiempo de ejecución se puede hacer mediante 'Move Size' o la alternativa InsideHeight + InsideWidth que utilizan como unidad de medida el Twips (567 twips = 1 cm.)

Gracias Estimado por responder. Voy a probar lo que mencionas, pero de igual forma te envío como me ocurre el problema. Al abrir el formulario artículos de forma normal hace lo que necesito con estos datos. Si te fijas de abre totalmente pero solo queda la barra de herramientas visible que es lo que necesito.

Pero cuando estoy cargando artículos en el formulario facturas de compra y no esta en la lista se abre el formulario artículos de forma automática y se abre a pantalla completa y no se ve la barra de herramientas windows

Así que probare lo que me indicas y te cuento, muchas gracias

Apropósito, me puedes indicar en qué lugar debo colocar lo que me indicas por favor

Aplicar cualquiera de las opciones (MoveSize / Inside... ) se puede hacer en el evento Open del formulario o en cualquier otro (incluso un botón para hacer controles).

Si el formulario esta maximizado antes se tendrá que restaurar (Docmd. Resize) para alterar sus dimensiones.
Si el formulario esta redimensionado (bordes ajustables + guardar diseño) se le deberían cambiar en modo diseño, si se le vuelve emergente (y además modal) utilizara su tamaño real.

Si se accede a la ventana de inmediato (con el formulario al tamaño deseado) se pueden conocer sus dimensiones optimas y aplicárselas por defecto al abrirlo, para obtenerlas:

'Su altura:
?forms.[nombre del formulario].InsideHeight
'Su ancho:
?forms.[nombre del formulario].InsideWidth

Para aplicárselas en el evento Open

forms.[nombre del formulario].InsideHeight = valor-obtenido
forms.[nombre del formulario].InsideWidth =  valor-obtenido

lo siento,  pero coloque lo que me indicas y no funciona, elimine maximizar al cargar el formulario y y le puse no emergente y no modal, pero igual no quiere abrir y me sale este error

Estimado, ya encontré la solución con MOVESIZE como me habías dicho y aprendí a usarlo. muchas gracias por la ayuda. salido todo bien.

puse este código en el formulario artículos en el evento al abrir, así que ahora al cargar un artículo en el formulario factura de compra al agregar un artículo que no está en la lista se abre el formulario articulo y se abre con las medidas que le coloque a mi gusto. muchas gracias otra vez.

Private Sub Form_Open(Cancel As Integer)
'Ajuste de formulario Lado Izquierdo, Lado Superior, Ancho, Alto
DoCmd.MoveSize 1, 1, 21100, 11100

End Sub

Me alegra que lograses la solución con uno de los métodos, el otro también funciona si se le implementa de forma correcta (lo cual puede ser culpa mía al transcribirlo).

Lo importante era obtener el tamaño correcto del formulario y ese tamaño es dudoso que fuera 20 Twips ya que si un cm tiene 567 Twips el formulario tendría un tamaño de 20/567 cm (+/- unos 3,5 milímetros).

Comentas la eliminación de maximizar al cargar el formulario y creo que esa (solo esa) era la causante del problema, sin aplicar el maximizado sus dimensiones deberían ser las mismas que cuando se abre de forma directa.

La propiedad 'emergente' (que puede redimensionarlo al aplicarla):
Debería aplicársele para que 'flote' sobre cualquier otro que este abierto

La propiedad 'modal' (activada al llamarlo):
Me atrevo a decir que es indispensable, pues detendrá el evento del formulario que lo llama y regresara a ese punto en cuanto se cierre.
Si no se le activa en la llamada, primero finaliza el código del evento y tras ello le pasa el foco.

Respuesta
1

Yo creo que te basta con( para el ejemplo pongo un botón, pero la instrucción es la misma)

Al pulsarlo

La instrucción es

Private Sub Comando75_Click()
DoCmd.OpenForm "clientes", , , , acFormAdd, acDialog
End Sub

Ya que al poner acformadd ya te lo abre en un registro nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas