aSystemOverload
aSystemOverload

Reputation: 3114

How to retrieve screen size/resolution in MS Access VBA to re-size a form

I have two popup forms (parent/child) that I want to be able to automatically re-size depending on the size of the screen.

How can I retrieve the size of the screen in order to achieve this.

Upvotes: 6

Views: 47364

Answers (2)

Fionnuala
Fionnuala

Reputation: 91376

For Access 2010 64 bit, you will need to add PtrSafe before Function.

Declare Function GetSystemMetrics32 Lib "User32" _
    Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

Sub ScreenRes()
Dim w As Long, h As Long
    w = GetSystemMetrics32(0) ' width in points
    h = GetSystemMetrics32(1) ' height in points

End Sub

For VBA 64 bits

Declare PtrSafe Function GetSystemMetrics32 Lib "User32" _
    Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

More info: http://support.microsoft.com/kb/210603

Upvotes: 15

CODE-REaD
CODE-REaD

Reputation: 3058

For VBA, a simpler (and therefore possibly more portable) solution might be:

Application.UsableHeight
Application.UsableWidth

As found at Adjust userforms to fit in screen. I am using this successfully with Word 2007 VBA. In my case, Application.UsableWidth gives the actual screen width, Application.UsableHeight gives the actual screen height, minus the height of Windows' taskbar.

Upvotes: 4

Related Questions