Ajustar formulario y elementos del mismo al tamaño y resolución de pantalla en access 2010
Creo que esta pregunta ya la he realizado con anterioridad pero, por si acaso, vuelvo a formularla.
Tengo una base de datos y, como supongo ocurre a todos, cuando la abro en un equipo en las que las características del monitor (tamaño y resolución) no son las mismas que las del equipo donde diseñé los formularios; esto, o se cortan (si el monitor es más pequeño - notebook) o quedan pequeños. Esto es no se redimensionan automáticamente a mayor o menor según el tipo de monitor.
He estado buscando por la red y preguntando a compañeros pero, hasta el momento, no encuentro quien me pueda echar una mano. Lo último a lo que he recurrido, y no se si será efectivo, es al uso de una API de windows:
'Para change Resolución de Pantalla
Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Public Const CCDEVICENAME = 32
Public Const CCFORMNAME = 32
Public Const DM_BITSPERPEL = & H40000
Public Const DM_PELSWIDTH = & H80000
Public Const DM_PELSHEIGHT = & H100000
Public Const CDS_UPDATEREGISTRY = & H1
Public Const CDS_TEST = & H4
Public Const DISP_CHANGE_SUCCESSFUL = 0
Public Const DISP_CHANGE_RESTART = 1
Tipo typDevMODE
dmDeviceName As String * CCDEVICENAME
DmSpecVersion As Integer
DmDriverVersion As Integer
DmSize As Integer
DmDriverExtra As Integer
dmFields As Long
DmOrientation As Integer
DmPaperSize As Integer
DmPaperLength As Integer
DmPaperWidth As Integer
DmScale As Integer
DmCopies As Integer
DmDefaultSource As Integer
DmPrintQuality As Integer
DmColor As Integer
DmDuplex As Integer
DmYResolution As Integer
DmTTOption As Integer
DmCollate As Integer
dmFormName As String * CCFORMNAME
DmUnusedPadding As Integer
DmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
Tipo End
EnumDisplaySettings Declare Function Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lptypDevMode Como Cualquiera) As Boolean
Declarar ChangeDisplaySettings Función Lib "user32" Alias "ChangeDisplaySettingsA" (lptypDevMode Como cualquier, ByVal dwFlags As Long) As Long
Declarar Función ExitWindowsEx Lib "user32" (uFlags ByVal As Long, ByVal dwReservado As Long) As Long
Dim typDevM Como typDevMODE
Dim lngResult As Long
IntAns Dim As Integer
'Recuperar información sobre el modo de gráficos actual
'En el dispositivo de visualización actual.
lngResult = EnumDisplaySettings (0, 0, typDevM)
'Establecer la nueva resolución. No cambie el color
'Profundidad para un reinicio no es necesario.
Con typDevM
. DmFields = DM_PELSWIDTH O DM_PELSHEIGHT
. DmPelsWidth = 640 'ScreenWidth (640,800,1024, etc)
. DmPelsHeight = 480 'ScreenHeight (480 600 768, etc)
End With
"Cambiar la configuración de pantalla para el modo gráfico especificado.
lngResult = ChangeDisplaySettings (typDevM, CDS_TEST)
Select Case lngResult
DISP_CHANGE_RESTART Case
intAns = MsgBox ("Debe reiniciar el equipo para aplicar estos cambios." & _
vbCrLf y vbCrLf & "¿Quiere reiniciar ahora?", _
vbYesNo + vbSystemModal, "Resolución de pantalla")
Si intAns = vbYes Entonces Llame ExitWindowsEx (EWX_REBOOT, 0)
Caso DISP_CHANGE_SUCCESSFUL
ChangeDisplaySettings llamada (typDevM, CDS_UPDATEREGISTRY)
MsgBox "Resolución de pantalla cambiado", vbInformation, "Resolución cambió"
Case Else
MsgBox "Modo no compatible", vbSystemModal, "Error"
End Select
Pero no tengo ni idea de como se usa, donde se coloca, ¿qué hay que hacer con este código?.
Estaría muy agradecido si alguien me pudiera dar alguna indicación.