Microsoft KB Archive/148395

From BetaArchive Wiki
Knowledge Base


ACC: How to Determine the Current Screen Resolution (95/97)

Article ID: 148395

Article Last Modified on 1/19/2007



APPLIES TO

  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition



This article was previously published under Q148395

SUMMARY

Advanced: Requires expert coding, interoperability, and multi-user skills.

This article shows you how to create a sample user-defined Visual Basic for Applications function to determine the current screen resolution. You can use this function to determine if you are running in standard VGA mode (640 x 480) or Super VGA mode (800 x 600 or 1024 x 768).

This article assumes that you are familiar with Visual Basic for Applications and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information about Visual Basic for Applications, please refer to your version of the "Building Applications with Microsoft Access" manual.

MORE INFORMATION

The following example demonstrates how to create and use the sample GetScreenResolution() function.

NOTE: You may have some Microsoft Windows API functions defined in an existing Microsoft Access library; therefore, your declarations may be duplicates. If you receive a duplicate procedure name error message, remove or comment out the declarations statement in your code.

  1. Create a new module, and type the following Declarations and function:

          '*****************************************************************
          ' DECLARATIONS SECTION
          '*****************************************************************
    
          Option Explicit
    
          Type RECT
              x1 As Long
              y1 As Long
              x2 As Long
              y2 As Long
          End Type
    
          ' NOTE: The following declare statements are case sensitive.
    
          Declare Function GetDesktopWindow Lib "User32" () As Long
          Declare Function GetWindowRect Lib "User32" _
             (ByVal hWnd As Long, rectangle As RECT) As Long
    
          '*****************************************************************
          ' FUNCTION: GetScreenResolution()
          '
          ' PURPOSE:
          '   To determine the current screen size or resolution.
          '
          ' RETURN:
          '   The current screen resolution. Typically one of the following:
          '      640 x 480
          '      800 x 600
          '      1024 x 768
          '
          '*****************************************************************
          Function GetScreenResolution () as String
              Dim R As RECT
              Dim hWnd As Long
              Dim RetVal As Long
              hWnd = GetDesktopWindow()
              RetVal = GetWindowRect(hWnd, R)
              GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
          End Function
                            
  2. On the View menu, click Debug window.
  3. Type the following line in the Debug window, and then press ENTER:

     ? GetScreenResolution()

    Note that the current screen resolution is displayed in the Debug window. If the current resolution is standard VGA, the following is displayed in the Debug window:

    640x480


REFERENCES

For more information about how to determine the current screen resolution in Microsoft Access 2.0, please see the following article in the Microsoft Knowledge Base:

113458 How to Determine the Current Screen Resolution (2.0)


For more information about API Calls, please see the following article in the Microsoft Knowledge Base:

147781 How to Convert API Calls from 16-bit to 32-bit.


Keywords: kbhowto kbprogramming KB148395