Microsoft Access 2010: The Dark Side of Setting Text Size to 100%

The answer to question Q_27157742 (Eliminate Navigation Pane Jumpiness) was to set the Windows Screen Text Size to 100%.

That worked for me, however, the text in form labels and on buttons became bigger and was often cut off.  This is non-intuitive.  If anything I would have expected the text to get smaller.  This is on a Windows 7 system.

Has anyone else seen this?  I'm kind of stuck between a rock and a hard place.  Set the screen text size to 100% and eliminate the jumpiness, but then I need to reformat all my forms so the label text can be seen.  Or set the screen text size to 125% or 150% and the forms look fine, but the navigation pane jumpiness returns.

Any ideas?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
<< but then I need to reformat all my forms so the label text can be seen.  >>

 Just need some code to run through all the forms, open in design mode, loop through the controls, change the font, and save.

If that's the route you want to go, I can help with that.

But you need to know what to go from to what.

Jeffrey CoachmanMIS LiasonCommented:
To me, the penalties for using the fix in Q_27157742, (changing font sizes), outweigh the issue itself.

IIRC, if you change the "View By" option, this may go away...
This is a finicky issue, I had it with 2007, but not with any other subsequent versions of Access.

Perhaps it is relate to the mouse scrolling options?
Perhaps you could investigate that as well.

Helen FeddemaCommented:
Here is some code you could modify for your purposes, if you want to go that route:

Public Sub ChangeFormFonts()
'Created by Helen Feddema 12-Oct-2010
'Last modified by Helen Feddema 12-Oct-2010
'Processes all forms, whether open or not

On Error GoTo ErrorHandler

   Dim obj As AccessObject
   Dim frm As Access.Form
   Dim strTitle As String
   Dim strPrompt As String
   Dim intReturn As Integer
   Dim ctl As Access.Control
   Dim prj As Object
   Dim strForm As String
   Dim strControl As String
   Dim strFont As String
   Dim lngControlType As Long
   Set prj = Application.CurrentProject
   For Each obj In prj.AllForms
      strForm = obj.NAME
      Debug.Print "Processing Form name: " & strForm
      If Left(strForm, 4) = "fdlg" Or Left(strForm, 4) = "fsub" _
         Or Left(strForm, 3) = "frm" Then
         DoCmd.OpenForm FormName:=strForm, _
         Set frm = Forms(strForm)
         If frm.Tag = "Fonts updated" Then
            GoTo NextObject
            For Each ctl In frm.Controls
               strControl = ctl.Name
               lngControlType = ctl.ControlType
               Debug.Print "Control: " & strControl _
                  & ", Control type: " & lngControlType
               'Check control type and only change fonts for certain types
               If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox _
                  Or ctl.ControlType = acListBox Or ctl.ControlType = acLabel _
                  Or ctl.ControlType = acCommandButton Then
                  strFont = ctl.FontName

                  If strFont = "Times New Roman" Or strFont = "MS Serif" Then
                     ctl.FontName = "Georgia"
                  ElseIf strFont = "MS Sans Serif" Or strFont = "Tahoma" _
                     Or strFont = "System" Then
                     ctl.FontName = "Calibri"
                  End If
               End If
            Next ctl
            frm.Tag = "Fonts updated"
         End If
         DoCmd.CLOSE objecttype:=acForm, _
            objectname:=strForm, _
         GoTo NextObject
      End If
   Next obj
   strTitle = "Done!"
   strPrompt = "Fonts changed on all forms"
   MsgBox prompt:=strPrompt, _
      buttons:=vbInformation + vbOKOnly, _
   Exit Sub

   If Err.Number = 438 Then
      Debug.Print "Problem with a control on " & strForm
      GoTo NextObject
      MsgBox "Error No: " & Err.Number _
         & " in ChangeFormFonts procedure; " _
         & "Description: " & Err.Description
      Resume ErrorHandlerExit
   End If
End Sub

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

koughdurAuthor Commented:
Jim and Helen,

Thanks for the code, but I don't think it will help.  Most of the fonts I am using on the forms are set to 8, so setting them smaller will not work.  In most cases I will need to increase the sizes of buttons and labels and move everything around in order to fit it all onto the form.

I tried with one application.  If I can get the form to look nice with text size of 100%, then it looks nice with 125% and 150%.  So it looks like I'm going to have to hack away at this manually as I get time.
koughdurAuthor Commented:

I have tried all values of View and they all are jumpy.

The other problem with setting text size to 100% is that the text is soooo small.  I really like how things look at 125% or even better at 150%!

Still I'll probably go back to 100% to eliminate the jumps.
koughdurAuthor Commented:
Thanks for the code.  I can't use it for this issue, but I may be able to use it in future on other projects.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.