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

koughdur
koughdur used Ask the Experts™
on
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?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Jim Dettman (EE MVE)President / Owner
Most Valuable Expert 2017
Most Valuable Expert 2012

Commented:
<< 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.

Jim.
Jeffrey CoachmanMIS Liason
Most Valuable Expert 2012

Commented:
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.

JeffCoachman
Top Expert 2009
Commented:
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, _
            View:=acDesign
         Set frm = Forms(strForm)
         
         If frm.Tag = "Fonts updated" Then
            GoTo NextObject
         Else
            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, _
            Save:=acSaveYes
      Else
         GoTo NextObject
      End If
      
NextObject:
   Next obj
   
   strTitle = "Done!"
   strPrompt = "Fonts changed on all forms"
   MsgBox prompt:=strPrompt, _
      buttons:=vbInformation + vbOKOnly, _
      Title:=strTitle
   
ErrorHandlerExit:
   Exit Sub

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

Open in new window

Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Author

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.

Author

Commented:
Jeff,

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.

Author

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.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial