Solved

Access VBA  - automatically fit size of label to text

Posted on 2010-08-14
10
1,105 Views
Last Modified: 2012-05-10
Hi

I ahve a report where labels are automatically populated with data and centred. My only problem is
that sometimes the text is too long for the label so a portion of it gets hidden. What VBA code would I use to automatically size the label to fit whatever text is in it.

Thanks
0
Comment
Question by:murbro
  • 5
  • 5
10 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 33436730
have you tried setting the property Can Grow and Can Shrink to Yes?
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 33436762
0
 

Author Comment

by:murbro
ID: 33436774
Hi

I can't ssem to find that property in my label. Pity they aren't in alphebetical order
0
 

Author Comment

by:murbro
ID: 33436785
looked at that link and can't see what you mean
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 33436812
download the file TextHeightWidth.zip from the link and see if you can apply the method used in the sampledb
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:murbro
ID: 33437026
That example is pretty complex. Surely Microsoft have a simpler way to do something so obviously necessary!
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 33437092
here is what you can do..

check the length of the caption (how many characters will fit in the Label using the default font size)
then do this

assuming the max number of characters that will fit using the default font that you have is 25

select case Len(me.labelx.caption)
      case 26-28
           me.labelx.fontsize=10


end select

something like that


can you upload your db...




   



end select
0
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
ID: 33437126
here is a function you can use place this codes in regular module






Function ResizeFont(MyStr As String) As Integer

Dim intLen As Integer



intLen = Len(MyStr)

Select Case intLen

Case Is < 10: ResizeFont = 18

Case Is < 20: ResizeFont = 16

Case Is < 30: ResizeFont = 16

Case Is < 40: ResizeFont = 14

Case Is < 50: ResizeFont = 12

Case Is < 60: ResizeFont = 10

Case Is < 70: ResizeFont = 8

Case Else: ResizeFont = 6

End Select

End Function

Open in new window

0
 

Author Closing Comment

by:murbro
ID: 33437197
Thanks very much
0
 

Author Comment

by:murbro
ID: 33437652
To anyone who reads this post: I found a far more workable solution to my initial question. I stretched the label manually to the width of the report and then set the TextAlign property to "Centre"
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

In the previous article, Using a Critera Form to Filter Records (http://www.experts-exchange.com/A_6069.html), the form was basically a data container storing user input, which queries and other database objects could read. The form had to remain op…
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…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

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

17 Experts available now in Live!

Get 1:1 Help Now