Access VBA - automatically fit size of label to text

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
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAsked:
Who is Participating?
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.

Rey Obrero (Capricorn1)Commented:
have you tried setting the property Can Grow and Can Shrink to Yes?
0
Rey Obrero (Capricorn1)Commented:
0
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Hi

I can't ssem to find that property in my label. Pity they aren't in alphebetical order
0
Newly released Acronis True Image 2019

In announcing the release of the 15th Anniversary Edition of Acronis True Image 2019, the company revealed that its artificial intelligence-based anti-ransomware technology – stopped more than 200,000 ransomware attacks on 150,000 customers last year.

Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
looked at that link and can't see what you mean
0
Rey Obrero (Capricorn1)Commented:
download the file TextHeightWidth.zip from the link and see if you can apply the method used in the sampledb
0
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
That example is pretty complex. Surely Microsoft have a simpler way to do something so obviously necessary!
0
Rey Obrero (Capricorn1)Commented:
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
Rey Obrero (Capricorn1)Commented:
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

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
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Thanks very much
0
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
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
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.