|
Hola Xavi,
He probado lo que comentas de la vista con pestañas pero no consigo que no muestre las fichas o pestañas que incluye por defecto. En cuanto al Ribbon, en el mismo formulario le indico:
DoCmd.ShowToolbar "Ribbon", acToolbarNo
pero dado que me muestra el entorno de Access en cuanto le pulsas en la barra de herramientas que queda alguna de las opciones que muestra como son Archivo - Inicio - Que deseas hacer' se despliega el Ribbon correspondiente.
he estado probando mil y una opciones pero lo único que consigo es que muestre al entrar en la Base de datos el formulario centrado pero con el entorno de Access como en la imagen:
Y si abro otro formulario por debajo de este me sale en formato Dialog con lo cual no puedo quitarle los bordes para que parezca un solo formulario:
Para centrarlo uso este código en el formulario:
Option Compare Database Option Explicit 'Centrar Private Sub Form_Load() Dim sngLeft As Single Dim sngTop As Single Call ReturnPosition_CenterScreen(Me.WindowHeight / 20, Me.WindowWidth / 20, sngLeft, sngTop) sngLeft = sngLeft * 20 sngTop = sngTop * 20 DoCmd.MoveSize sngLeft, sngTop End Sub Private Sub Form_Open(cancel As Integer) DoCmd.ShowToolbar "Ribbon", acToolbarNo Call ShowWindow(hWndAccessApp, 0) Form.BorderStyle 0 End Sub
Y este en un módulo.
Option Compare Database Option Explicit
'#If VBA7 Then Public Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal Index As Long) As Long Public Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Public Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long Public Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal Index As Long) As Long Public Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hWnd As Long, ByRef lpRect As udtRECT) As Long '#Else ' Declare Function GetSystemMetrics Lib "user32" (ByVal Index As Long) As Long ' Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long ' Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long ' Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal Index As Long) As Long ' Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, ByRef lpRect As udtRECT) As Long '#End If
Type udtRECT Left As Long Top As Long Right As Long Bottom As Long End Type
Public Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Public Sub ReturnPosition_CenterScreen(ByVal sngHeight As Single, _ ByVal sngWidth As Single, _ ByRef sngLeft As Single, _ ByRef sngTop As Single) Dim sngAppWidth As Single Dim sngAppHeight As Single Dim hWnd As Long Dim lreturn As Long Dim lpRect As udtRECT
'hWnd = Application.hWnd 'Used in Excel and Word hWnd = Application.hWndAccessApp 'Used in Access lreturn = GetWindowRect(hWnd, lpRect) sngAppWidth = ConvertPixelsToPoints(lpRect.Right - lpRect.Left, "X") sngAppHeight = ConvertPixelsToPoints(lpRect.Bottom - lpRect.Top, "Y") sngLeft = ConvertPixelsToPoints(lpRect.Left, "X") + ((sngAppWidth - sngWidth) / 2) sngTop = ConvertPixelsToPoints(lpRect.Top, "Y") + ((sngAppHeight - sngHeight) / 2) End Sub Public Function ConvertPixelsToPoints(ByVal sngPixels As Single, _ ByVal sXorY As String) As Single Dim hDC As Long
hDC = GetDC(0) If sXorY = "X" Then ConvertPixelsToPoints = sngPixels * (72 / GetDeviceCaps(hDC, 88)) End If If sXorY = "Y" Then ConvertPixelsToPoints = sngPixels * (72 / GetDeviceCaps(hDC, 90)) End If Call ReleaseDC(0, hDC) End Function
Esto lo quiero para que en cualquier pantalla, que seguramente sera más grande que la yo utilizo, se puedan ver centrados los formularios y no en la esquina superior izquierda cuando los maximizo.
Un saludo. José L.
------------- Saludos desde Menorca. José Luis
|