Solved

MSAccess Not Fully Displayed

Posted on 2009-04-09
7
555 Views
Last Modified: 2013-11-28
I developed an MSAccess form on my computer at work and it is a MainForm with a Subform.  The MainForm has the MainMenu Buttons on the left side and the subform is the form corresponding to the MainMenu Buttons.  When I open the application, I see the entire form, but when some of the users open it, they can not see the MainMenuButtons.  All they see is the subform object.  There is no room on the screen to stretch it out either.  Any ideas of how I can make the form fit on any screen with any resolution?  Thank you!
0
Comment
Question by:CaroleTSullivan
  • 4
  • 3
7 Comments
 
LVL 65

Expert Comment

by:rockiroads
ID: 24109083
hav u developed your forms on a much higher resolution?
have a look at this form resizer, see if it helps you http://www.jamiessoftware.tk/downloads.html
0
 

Author Comment

by:CaroleTSullivan
ID: 24110997
It was developed in a higher resolution, and I appreciate your comments, but I was hoping there would be a way to code around it......thanks.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 24111174
that example should allow you to do that with a little coding

Quote from the site

The Form Resizer is a Microsoft Access MDB (Microsoft Database) that allows you to install a module in your own Access MDBs that can resize your program's forms to fit the current screen resolution. It is intended for Access developers with basic Visual Basic for Applications (VBA) coding knowledge. Works with Access 97, 2000, 2002 and 2003.
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 

Author Comment

by:CaroleTSullivan
ID: 24111351
but it wasn't free and my work site won't let me download objects.  I apologize if I'm sounding dense.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 24111593
it is free but since you cant download objects, I will paste the code for you


'---------------------------------------------------------------------------------------

' Module    : modResizeForm

' Author    : Jamie Czernik BSc {jamie@jamiessoftware.tk}

' Purpose   : Resizes Microsoft Access forms to fit the current screen resolution.

' Use       : Work on a back-up copy of your application first.

'             Change the constant DESIGN_HORZRES to the horizontal screen resolution

'             used when forms were designed. Change the constant DESIGN_VERTRES to the

'             vertical screen resolution used when forms were designed.

'             Change DESIGN_PIXELS to the DPI used if required.

'             Call ResizeForm Me on the onLoad event for each form (even sub forms).

' Bugs:     : Tab controls and Option Groups are very difficult to handle - see comments

'             throughout code for more information. Scaling forms up works much better

'             than trying to scale forms down. Scaling down will probably distrot fronts.

'             FIX:- Redesign forms to fit lowest resoltion and scale up instead.

'             Continuous sub forms generate random crashes in Access 2002 & later - no fix.

'             Send bug reports to: jamie@jamiessoftware.tk for future fixes.

'             (No immediate support is provided. *Please* check online help, message board

'             and latest version at http://www.jamiessoftware.tk before sending bug reports)

' Test:       Test your application at each possible screen resolution after installing.

' Please    : Consider donating $5 or $10 if you find this code useful by visiting:-

'             http://jamiessoftware.tk/resizeform/rf_download.html

' Credits   : This modResizeForm module was created by Jamie Czernik

'             Contains improvement suggestions/updates from:  Dr. Martin Dumskyj,

'             Nathan Carroll, Wilfrid Underwood & Kyle Hughes.

'             Contains enhancements which fixed some problems in combo boxes, list

'             boxes, and tab controls from: Myke Myers & Chris Garland.

' Updated   : April 2006.

'---------------------------------------------------------------------------------------

Option Compare Database

Option Explicit

'-----------------------------MODULE CONSTANTS & VARIABLES------------------------------

Private Const DESIGN_HORZRES As Long = 640   '<- CHANGE THIS VALUE TO THE RESOLUTION

                                                'YOU DESIGNED YOUR FORMS IN.

                                                '(e.g. 800 X 600 -> 800)

Private Const DESIGN_VERTRES As Long = 480   '<- CHANGE THIS VALUE TO THE RESOLUTION

                                                'YOU DESIGNED YOUR FORMS IN.

                                                '(e.g. 800 X 600 -> 600)

Private Const DESIGN_PIXELS As Long = 96        '<- CHANGE THIS VALUE TO THE DPI

                                                'SETTING YOU DESIGNED YOUR FORMS IN.

                                                '(If in doubt do not alter the

                                                'DESIGN_PIXELS setting as most

                                                'systems use 96 dpi.)

Private Const WM_HORZRES As Long = 8

Private Const WM_VERTRES As Long = 10

Private Const WM_LOGPIXELSX As Long = 88

Private Const TITLEBAR_PIXELS As Long = 18

Private Const COMMANDBAR_PIXELS As Long = 26

Private Const COMMANDBAR_LEFT As Long = 0

Private Const COMMANDBAR_TOP As Long = 1

Private OrigWindow As tWindow                   'Module level variable holds the

                                                'original window dimensions before

                                                'resize.
 

Private Type tRect

    left As Long

    Top As Long

    right As Long

    bottom As Long

End Type
 

Private Type tDisplay

    Height As Long

    Width As Long

    DPI As Long

End Type
 

Private Type tWindow

    Height As Long

    Width As Long

End Type
 

Private Type tControl

    Name As String

    Height As Long

    Width As Long

    Top As Long

    left As Long

End Type

'-------------------------- END MODULE CONSTANTS & VARIABLES----------------------------
 

'------------------------------------API DECLARATIONS-----------------------------------

Private Declare Function WM_apiGetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Declare Function WM_apiGetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long

Private Declare Function WM_apiGetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long

Private Declare Function WM_apiReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Declare Function WM_apiGetWindowRect Lib "user32.dll" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As tRect) As Long

Private Declare Function WM_apiMoveWindow Lib "user32.dll" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _

ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Private Declare Function WM_apiIsZoomed Lib "user32.dll" Alias "IsZoomed" (ByVal hwnd As Long) As Long

'--------------------------------- END API DECLARATIONS----------------------------------
 

'---------------------------------------------------------------------------------------

' Procedure : getScreenResolution

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Function returns the current height, width and dpi.

'---------------------------------------------------------------------------------------

Private Function getScreenResolution() As tDisplay
 

Dim hDCcaps As Long

Dim lngRtn As Long
 

On Error Resume Next
 

    'API call get current resolution:-

    hDCcaps = WM_apiGetDC(0) 'Get display context for desktop (hwnd = 0).

    With getScreenResolution

        .Height = WM_apiGetDeviceCaps(hDCcaps, WM_VERTRES)

        .Width = WM_apiGetDeviceCaps(hDCcaps, WM_HORZRES)

        .DPI = WM_apiGetDeviceCaps(hDCcaps, WM_LOGPIXELSX)

    End With

    lngRtn = WM_apiReleaseDC(0, hDCcaps) 'Release display context.

    

End Function
 

'---------------------------------------------------------------------------------------

' Procedure : getFactor

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Function returns the value that the form's/control's height, width, top &

'             left should be multiplied by to fit the current screen resolution.

'---------------------------------------------------------------------------------------

Private Function getFactor(blnVert As Boolean) As Single
 

Dim sngFactorP As Single
 

On Error Resume Next
 

    If getScreenResolution.DPI <> 0 Then

        sngFactorP = DESIGN_PIXELS / getScreenResolution.DPI

    Else

        sngFactorP = 1 'Error with dpi reported so assume 96 dpi.

    End If

    If blnVert Then 'return vertical resolution.

        getFactor = (getScreenResolution.Height / DESIGN_VERTRES) * sngFactorP

    Else 'return horizontal resolution.

        getFactor = (getScreenResolution.Width / DESIGN_HORZRES) * sngFactorP

    End If

    

End Function
 

'---------------------------------------------------------------------------------------

' Procedure : ReSizeForm

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Routine should be called on a form's onOpen or onLoad event.

'---------------------------------------------------------------------------------------

Public Sub ReSizeForm(ByVal frm As Access.Form)
 

Dim rectWindow As tRect

Dim lngWidth As Long

Dim lngHeight As Long

Dim sngVertFactor As Single

Dim sngHorzFactor As Single

Dim sngFontFactor As Single
 

On Error Resume Next
 

    sngVertFactor = getFactor(True)  'Local function returns vertical size change.

    sngHorzFactor = getFactor(False)  'Local function returns horizontal size change.

    'Choose lowest factor for resizing fonts:-

    sngFontFactor = VBA.IIf(sngHorzFactor < sngVertFactor, sngHorzFactor, sngVertFactor)

    Resize sngVertFactor, sngHorzFactor, sngFontFactor, frm 'Local procedure to resize form sections & controls.

    If WM_apiIsZoomed(frm.hwnd) = 0 Then 'Don't change window settings for max'd form.

        Access.DoCmd.RunCommand acCmdAppMaximize 'Maximize the Access Window.

        'Store for dimensions in rectWindow:-

        Call WM_apiGetWindowRect(frm.hwnd, rectWindow)

        'Calculate and store form height and width in local variables:-

        With rectWindow

            lngWidth = .right - .left

            lngHeight = .bottom - .Top

        End With

        'Resize the form window as required (don't resize this for sub forms):-

        If frm.Parent.Name = VBA.vbNullString Then

            Call WM_apiMoveWindow(frm.hwnd, ((getScreenResolution.Width - _

            (sngHorzFactor * lngWidth)) / 2) - getLeftOffset, _

            ((getScreenResolution.Height - (sngVertFactor * lngHeight)) / 2) - _

            getTopOffset, lngWidth * sngHorzFactor, lngHeight * sngVertFactor, 1)

        End If

    End If

    Set frm = Nothing 'Free up resources.

    

End Sub
 

'---------------------------------------------------------------------------------------

' Procedure : Resize

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Routine re-scales the form sections and controls.

'---------------------------------------------------------------------------------------

Private Sub Resize(sngVertFactor As Single, sngHorzFactor As Single, sngFontFactor As _

Single, ByVal frm As Access.Form)
 

Dim ctl As Access.Control            'Form control variable.

Dim arrCtls() As tControl            'Array of Tab and Option Group control properties.

Dim lngI As Long                     'Loop counter.

Dim lngJ As Long                     'Loop counter.

Dim lngWidth As Long                 'Stores form's new width.

Dim lngHeaderHeight As Long          'Stores header's new height.

Dim lngDetailHeight As Long          'Stores detail's new height.

Dim lngFooterHeight As Long          'Stores footer's new height.

Dim blnHeaderVisible As Boolean      'True if form header visible before resize.

Dim blnDetailVisible As Boolean      'True if form detail visible before resize.

Dim blnFooterVisible As Boolean      'True if form footer visible before resize.

Const FORM_MAX As Long = 31680       'Maximum possible form width & section height.
 

On Error Resume Next

    

    With frm

        .Painting = False 'Turn off form painting.

        'Calculate form's new with and section heights and store in local variables

        'for later use:-

        lngWidth = .Width * sngHorzFactor

        lngHeaderHeight = .Section(Access.acHeader).Height * sngVertFactor

        lngDetailHeight = .Section(Access.acDetail).Height * sngVertFactor

        lngFooterHeight = .Section(Access.acFooter).Height * sngVertFactor

        'Now maximize the form's width and height while controls are being resized:-

        .Width = FORM_MAX

        .Section(Access.acHeader).Height = FORM_MAX

        .Section(Access.acDetail).Height = FORM_MAX

        .Section(Access.acFooter).Height = FORM_MAX

        'Hiding form sections during resize prevents invalid page fault after

        'resizing column widths for list boxes on forms with a header/footer:-

        blnHeaderVisible = .Section(Access.acHeader).Visible

        blnDetailVisible = .Section(Access.acDetail).Visible

        blnFooterVisible = .Section(Access.acFooter).Visible

        .Section(Access.acHeader).Visible = False

        .Section(Access.acDetail).Visible = False

        .Section(Access.acFooter).Visible = False

    End With

    'Resize array to hold 1 element:-

    ReDim arrCtls(0)

    'Gather properties for Tabs and Option Groups to recify height/width problems:-

    For Each ctl In frm.Controls

        If ((ctl.ControlType = Access.acTabCtl) Or _

        (ctl.ControlType = Access.acOptionGroup)) Then

            With arrCtls(lngI)

                .Name = ctl.Name

                .Height = ctl.Height

                .Width = ctl.Width

                .Top = ctl.Top

                .left = ctl.left

            End With

            lngI = lngI + 1

            ReDim Preserve arrCtls(lngI) 'Increase the size of the array.

        End If

    Next ctl

    'Resize and locate each control:-

    For Each ctl In frm.Controls

        If ctl.ControlType <> Access.acPage Then 'Ignore pages in Tab controls.

            With ctl

                .Height = .Height * sngVertFactor

                .left = .left * sngHorzFactor

                .Top = .Top * sngVertFactor

                .Width = .Width * sngHorzFactor

                .FontSize = .FontSize * sngFontFactor

                'Enhancement by Myke Myers --------------------------------------->

                'Fix certain Combo Box, List Box and Tab control properties:-

                Select Case .ControlType

                    Case Access.acListBox

                        .ColumnWidths = adjustColumnWidths(.ColumnWidths, sngHorzFactor)

                    Case Access.acComboBox

                        .ColumnWidths = adjustColumnWidths(.ColumnWidths, sngHorzFactor)

                        .ListWidth = .ListWidth * sngHorzFactor

                    Case Access.acTabCtl

                        .TabFixedWidth = .TabFixedWidth * sngHorzFactor

                        .TabFixedHeight = .TabFixedHeight * sngVertFactor

                End Select

                '------------------------------------> End enhancement by Myke Myers.

            End With

        End If

    Next ctl

    '********************************************************

    '* Note if scaling form up: If Tab controls or Option   *

    '* Groups are too near the bottom or right side of the  *

    '* form they WILL distort due to the way that Access    *

    '* keeps the child controls within the control frame.   *

    '* Try moving these controls left or up if possible.    *

    '* The opposite is true for scaling down so in this     *

    '* case try moving these controls right or down.        *

    '********************************************************

    'Now try to rectify Tabs and Option Groups height/widths:-

    For lngJ = 0 To lngI

        With frm.Controls.Item(arrCtls(lngJ).Name)

            .left = arrCtls(lngJ).left * sngHorzFactor

            .Top = arrCtls(lngJ).Top * sngVertFactor

            .Height = arrCtls(lngJ).Height * sngVertFactor

            .Width = arrCtls(lngJ).Width * sngHorzFactor

        End With

    Next lngJ

    'Now resize height for each section and form width using stored values:-

    With frm

        .Width = lngWidth

        .Section(Access.acHeader).Height = lngHeaderHeight

        .Section(Access.acDetail).Height = lngDetailHeight

        .Section(Access.acFooter).Height = lngFooterHeight

        'Now unhide form sections:-

        .Section(Access.acHeader).Visible = blnHeaderVisible

        .Section(Access.acDetail).Visible = blnDetailVisible

        .Section(Access.acFooter).Visible = blnFooterVisible

        .Painting = True 'Turn form painting on.

    End With

    Erase arrCtls 'Destory array.

    Set ctl = Nothing 'Free up resources.
 

End Sub
 

'---------------------------------------------------------------------------------------

' Procedure : getTopOffset

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Function returns the total size in pixels of menu/toolbars at the top of

'             the Access window allowing the form to be positioned in the centre of the

'             screen.

'---------------------------------------------------------------------------------------

Private Function getTopOffset() As Long
 

Dim cmdBar As Object

Dim lngI As Long
 

On Error GoTo err
 

     For Each cmdBar In Application.CommandBars

        If ((cmdBar.Visible = True) And (cmdBar.Position = COMMANDBAR_TOP)) Then

            lngI = lngI + 1

        End If

     Next cmdBar

     getTopOffset = (TITLEBAR_PIXELS + (lngI * COMMANDBAR_PIXELS))
 

exit_fun:

    Exit Function

    

err:

    'Assume only 1 visible command bar plus the title bar:

    getTopOffset = TITLEBAR_PIXELS + COMMANDBAR_PIXELS

    Resume exit_fun

     

End Function
 

'---------------------------------------------------------------------------------------

' Procedure : getLeftOffset

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Function returns the total size in pixels of menu/toolbars at the left of

'             the Access window allowing the form to be positioned in the centre of the

'             screen.

'---------------------------------------------------------------------------------------

Private Function getLeftOffset() As Long
 

Dim cmdBar As Object

Dim lngI As Long
 

On Error GoTo err
 

     For Each cmdBar In Application.CommandBars

        If ((cmdBar.Visible = True) And (cmdBar.Position = COMMANDBAR_LEFT)) Then

            lngI = lngI + 1

        End If

     Next cmdBar

     getLeftOffset = (lngI * COMMANDBAR_PIXELS)
 

exit_fun:

    Exit Function

    

err:

    'Assume no visible command bars:-

    getLeftOffset = 0

    Resume exit_fun

     

End Function

 

'---------------------------------------------------------------------------------------

' Procedure : adjustColumnWidths

' DateTime  : 27/01/2003

' Author    : Myke Myers [Split() replacement for Access 97 by Jamie Czernik]

' Purpose   : Adjusts column widths for list boxes and combo boxes.

' Called By : modResize/Resize().

' Event Modification Information:

'   1. Chris Garland    02/07/2006

'   The event was modified to check if there is any column size entry, and if not, the

'   property is left blank on the control.

'---------------------------------------------------------------------------------------

Private Function adjustColumnWidths(strColumnWidths As String, sngFactor As Single) As String

On Error GoTo Err_adjustColumnWidths
 

Dim astrColumnWidths() As String                'Array to hold the individual column widths

Dim strTemp As String                           'Holds the recombined columnwidths string

Dim lngI As Long                                'For Loop counter

Dim lngJ As Long                                'Columnwidths counter
 

    'Get the column widths:-

    'THIS CODE BY JAMIE CZERNIK------------------------------------------->

    'Replace the Split() function as not available in Access 97:

    'Sets the array to one entry.

    ReDim astrColumnWidths(0)

    'Loops through each character in the Column Widths String passed in by the calling code.

    For lngI = 1 To VBA.Len(strColumnWidths)

        'Looks for each semicolon, which is what separates the individual Column Widths.

        Select Case VBA.mID(strColumnWidths, lngI, 1)

            'If a semicolon is not found, the character is added to the any characters

            ' already in the columnwidths entry in the array.  If it is found, the

            ' Columnwidths Counter is incremented by one and the array is increased by

            ' one while retaining entered data so that the next columnwidth can be entered.

            Case Is <> ";"

                astrColumnWidths(lngJ) = astrColumnWidths(lngJ) & VBA.mID( _

                strColumnWidths, lngI, 1)

            Case ";"

                lngJ = lngJ + 1

                ReDim Preserve astrColumnWidths(lngJ) 'Resize the array.

        End Select

    Next lngI

    'Resets the loop counter to 0.

    lngI = 0

    '--------------------------------------------> END CODE BY JAMIE CZERNIK.

    'Access 2000/2002 users can uncomment the line below and remove the split() code

    'replacement above.

    'astrColumnWidths = Split(strColumnWidths, ";")'Available in Access 2000/2002 only

    strTemp = VBA.vbNullString 'Sets the temp variable to a null string

    'Loops through the all the columnwidths in the array, converting them to the new sizes

    ' (using the Width Size Conversion Factor that was passed-in), and recombining them

    ' into a single string to pass back to the calling code. (If there is no Column Width,

    ' the value is left blank.)

    Do Until lngI > UBound(astrColumnWidths)

        If Not IsNull(astrColumnWidths(lngI)) And astrColumnWidths(lngI) <> "" Then

            strTemp = strTemp & CSng(astrColumnWidths(lngI)) * sngFactor & ";"

        End If

        lngI = lngI + 1

    Loop

    'Returns the combined columnwidths string to the calling code.

    adjustColumnWidths = strTemp

    Erase astrColumnWidths 'Destroy array.

    

Exit_adjustColumnWidths:

    On Error Resume Next

    Exit Function
 

Err_adjustColumnWidths:

    Erase astrColumnWidths 'Destroy array.

    Resume Exit_adjustColumnWidths

    

End Function
 

'---------------------------------------------------------------------------------------

' Procedure : getOrigWindow

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Routine stores the original window dimensions before resizing call it

'             when form loads. (before calling ResizeForm Me!).

'             Call it: Form_Load()

'             [More info in "Important Points" - point 5 - in help file.]

'---------------------------------------------------------------------------------------

Public Sub getOrigWindow(frm As Access.Form)
 

On Error Resume Next
 

    OrigWindow.Height = frm.WindowHeight

    OrigWindow.Width = frm.WindowWidth
 

End Sub
 

'---------------------------------------------------------------------------------------

' Procedure : RestoreWindow

' DateTime  : 27/01/2003

' Author    : Jamie Czernik

' Purpose   : Routine restores the original window dimensions call it when form closes.

'             Call it: Form_Close()

'             [More info in "Important Points" - point 5 - in help file.]

'---------------------------------------------------------------------------------------

Public Sub RestoreWindow()
 

On Error Resume Next
 

    Access.DoCmd.MoveSize , , OrigWindow.Width, OrigWindow.Height

    Access.DoCmd.Save

    

End Sub

Open in new window

0
 
LVL 65

Accepted Solution

by:
rockiroads earned 500 total points
ID: 24111607
In the form_load of your form, call

Resizeform me



Here ar the Instructions as per the download

"REMEMBER TO MAKE A BACKUP OF YOUR DATABASE BEFORE PROCEEDING!

INSTRUCTIONS:

*Click on the ""Example"" button below to see the re-sizing code in action.*

Note: Ensure that your destination database is NOT open before proceeding.

It is recommended that you test the resizing routine on a back up copy of your application first.

Experienced VBA programmers can just click on the ""View Code"" button below and copy & paste the code into a new module in the destination database. Less experienced users should consult the help files for more assistance (button at the top right of this form).

1. Click on the ""Export"" button below.

2. Locate your database using the ""open"" button on the export form.

3. Click on ""Export Module"" button.

4. Now open your database.

5. If you have designed your database forms at any resolution other than 640 X 480 then you must prepare the modResizeForm module as follows:-

5a. Open the module modResizeForm under the modules tab of the database window.

5b. Locate the following lines of code in the module: ""Private Const DESIGN_HORZRES As Long = 640"" and ""Private Const DESIGN_VERTRES As Long = 480""

5c. Delete ""640"" and ""480"" and then enter your own design resolution select File -> Save  and close the module. (If you designed your forms at 1024 X 768 then DESIGN_HORZRES = 1024 and DESIGN_VERTRES = 768 etc&)

5d. Continue with the remaining instructions.

6. Open a form that you want to resize in design view.

7. Select View -> Properties (if the property inspector is not already in view) and select the ""Event"" tab.

8. Select the form's ""On Load"" event and select ""Code Builder"".

9. Enter the following line of code:"" ResizeForm Me"" (without the quotes!)

10a. Repeat steps 6-9 for any other forms that you want resized.

10b. The resizing code will work with single sub forms (continuous sub forms in Access 2002 or later sometimes generate crashes for which there is currently no fix). To resize a sub form it is best to call the routine from the parent form, usually just after resizing the parent form in the Load event. For example:

ResizeForm Me![NameOfYourSubFormControl].Form

So if the control used to display your subform is called ""MySubForm"" you would use:

ResizeForm Me!MySubForm.Form

11. Select Debug -> Compile in the VBA Code Editor window to compile your code.

IMPORTANT POINTS:

1. The best resizing results are obtained when a form is scaled up rather than down.

2. Generally, the ResizeForm routine works BEST with forms that are maximized, with the main Access window maximized as well. If forms are not maximized then after resizing, they will be displayed in the centre of the screen.

3. The resizing code will work with single sub forms (continuous sub forms in Access 2002 or later sometimes generate crashes for which there is currently no fix). To resize a sub form it is best to call the routine from the parent form, usually just after resizing the parent form in the Load event.

4. If you open a resized form in design view and then save the form you WILL save the new height and width settings. Therefore I have provided two functions. Call the function ""getOrigWindow Me"" before you call ""ResizeForm Me"" to store your original size and height and then on the form's onClose event call ""RestoreWindow"" to restore the original height and width. These are not necessary however if you don't open your resized form in design view. (i.e. if you are not actively developing your application)

5. Tab controls and options groups are difficult to resize as Access tries to keep the child controls within the frame while the child controls are being moved and resized. This can lead to distortion if the controls are too close to either the top/bottom or left/right of the form being resized. If you forms tend to be scaled up to higher resolutions then try to keep tab controls and option groups as far left and near to top of the form section as possible. The reverse is true if forms tend to be scaled down to lower resolutions so in this situation try to keep them as far right and near to the bottom as possible.

6. Images on controls such as buttons cannot be resized. The same is true for the default record navigation buttons, check boxes, option buttons, menus, tool tips or forms viewed as a datasheet.

7. No immediate support is available however bug reports are welcome and will be investigated for future versions. Please provide as much detail as possible such as your version of Access (97, 2000, 2002, 2003), operating system, display settings, error messages, sequence of events that led to the error etc. (Poorly written bug reports are of no use.)

8. Test your application at each possible screen resolution under which it will be used before distributing it to your end users.

The Form Resizer is a FREE utility. If however, you find this utility useful and wish to make a small donation of $5 or $10, please activate the ""Donate"" button on the main toolbar."
0
 

Author Closing Comment

by:CaroleTSullivan
ID: 31568613
thank you
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now