uso tipos sirve que pasos para ingresar formularios formulario elementos ejemplos diseño desde datos crear como ms-access access-vba

ms-access - sirve - tipos de formularios en access



Controlar el tamaño de los formularios en Access (4)

Puedes usar MoveSize:

DoCmd.MoveSize 100,100

Más información: http://msdn.microsoft.com/en-us/library/aa141514(office.10).aspx

Así que tengo una aplicación de acceso, y me gustaría que algunos formularios se maximicen cuando se abren, y que otros sean de tamaño mediano cuando se abren. Sin embargo, si intento algo como esto:

Private Sub Form_Activate() DoCmd.Maximize End Sub

o

Private Sub Form_Activate() DoCmd.Restore End Sub

tiene el efecto de maximizar o restaurar cada ventana abierta, que no es lo que estoy buscando.

¿Hay alguna forma de evitar esto?

Estoy usando Access 2003.



Access es una aplicación MDI (Multiple Document Interface), y así es como funcionan: todas las ventanas secundarias están maximizadas o ninguna.

Lo que debe hacer es buscar la forma de descubrir las dimensiones de la ventana de la aplicación de Access y luego establecer programáticamente las propiedades .InsideWidth y .InsideHeight. El objeto Application tiene una aplicación hwndAccessApp que probablemente se puede usar con algunas llamadas API de Windows para averiguar su ancho y alto.

apéndice

Gracias a Philippe Grondier por encontrar una muestra de código relevante, la idea general de la muestra del código es:

  • declarar los siguientes elementos de la API de Win32:
    • struct Rect ( Type Rect… en VBA)
    • const SW_SHOWNORMAL = 1 (para ShowWindow)
    • GetParent (dado un hwnd, obtenga el hwnd de su padre)
    • GetClientRect (recuperar posición y tamaño desde un hwnd)
    • IsZoomed (booleano; verdadero si la ventana está maximizada)
    • ShowWindow (cambia el estado de una ventana)
    • MoveWindow (para cambiar la posición y el tamaño de una ventana)
  • si su formulario está maximizado ( IsZoomed(frm.hWnd) = True ), luego restaurelo ( ShowWindow frm.hWnd, SW_SHOWNORMAL )
  • obtener el área de clientes MDI desde hWnd de su formulario ( GetClientRect GetParent(frm.hWnd, rect) )
  • utilice los datos rect para cambiar la posición y el tamaño de su ventana ( MoveWindow frm.hWnd, 0, 0, rect.x2-rect.x1, rect.y2-rect.y1 )

(Lo anterior es básicamente la explicación de la muestra del código; no copié y pegué el código porque no estaba seguro de si el autor lo permitió).


ΤΖΩΤΖΙΟΥ es 100% correcto al decir que todos están maximizados o ninguno. Si realmente desea manejar este problema, deberá leer un poco aquí (consulte el código propuesto y la forma de llamarlo), comprender qué se hace y, finalmente, crear su propia solución según sus necesidades.