I need a function similar to the TextWidth method of report objects but which will work on a form. I need to break text up into lines for a form display similar to what we already do on a report. Unfortunately, forms don’t have a TextWidth method, at least no in A97.
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
-
Form Equivalent of TextWidth (97 SR1)
Home » Forums » AskWoody support » Productivity software by function » MS Access and database help » Form Equivalent of TextWidth (97 SR1)
- This topic has 9 replies, 4 voices, and was last updated 22 years, 5 months ago.
AuthorTopicWScharlotte
AskWoody LoungerDecember 17, 2002 at 7:11 pm #380836Viewing 1 reply threadAuthorReplies-
WSHansV
AskWoody LoungerDecember 18, 2002 at 7:09 am #639457Charlotte, the attached module contains a function GetTextWidth. This function returns the text width (in twips) of the text in the active control. You can use it (for instance) in the OnChange event of a text box.
The code is derived from the code provided in MSKB article ACC: How to Limit Number of Characters to Size of Text Box.
-
WScharlotte
AskWoody LoungerDecember 18, 2002 at 1:10 pm #639505Thanks, Hans. I had already looked at that code in the MSKB before I posted. The problem with it is that it assumes the control will have the focus and gets the hWnd for that control. What I’m doing is filling in a *series* of unbound form controls with text that may be chunks of a string too big to fit into a single control from a single record or may be a series of strings from sequential records. For sufficient reasons the controls are not necessarily the same width. I adapted a method from the Access Developers Handbook for A97 used for sizing controls to fit their contents. I just used the relevant portion to determine the length of the text in twips based on the font size and compared it to the width of the control in twips. And of course it has to be parsed by word so that no word gets broken at the end of the available space.
-
WSHansV
AskWoody LoungerDecember 18, 2002 at 1:28 pm #639510Charlotte,
The MSKB code needs the control to have focus at two places:
- To get the current text in the control. Since you are breaking up an existent string, you don’t need that; you can pass strings as a parameter instead.
- To get the window handle of the control. To get around this, you could fill an array with the hWnd’s of the controls in OnLoad of the form, and pass the appropriate hWnd as a parameter.
The function could look like this:
Public Function GetTextWidth(strVal As String, hWnd As Long)
‘ Get text width of string in control in twips
Dim hDC As Long
Dim lpSize As Size‘ Get device context of control
hDC = GetDC(hWnd)‘ Compute the width of the text
GetTextExtentPoint hDC, strVal, Len(strVal), lpSize
ReleaseDC hWnd, hDC
ConvertPixelsToTwips lpSize.cx, lpSize.cy
GetTextWidth = lpSize.cx
End Function -
WScharlotte
AskWoody Lounger -
WSpatt
AskWoody Lounger -
WScharlotte
AskWoody Lounger -
WScharlotte
AskWoody LoungerDecember 24, 2002 at 1:18 pm #640646Here’s the code I used. It definitely works with Access 97 but I would be cautious about recommending it for later versions due to the highly explicit declarations from the Msaccess executable itself. The advantage to it is that the controls don’t ever need to get the focus in order to determine the width.
-
WSpatt
AskWoody Lounger
-
-
-
-
-
WSShane Sargent
AskWoody Lounger
Viewing 1 reply thread -

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
Perplexity Pro free for 12 mos for Samsung Galaxy phones
by
Patricia Grace
3 hours, 15 minutes ago -
June KB5060842 update broke DHCP server service
by
Alex5723
1 hour, 47 minutes ago -
AMD Ryzen™ Chipset Driver Release Notes 7.06.02.123
by
Alex5723
5 hours, 49 minutes ago -
Excessive security alerts
by
WSSebastian42
1 hour, 30 minutes ago -
* CrystalDiskMark may shorten SSD/USB Memory life
by
Alex5723
15 hours, 18 minutes ago -
Ben’s excellent adventure with Linux
by
Ben Myers
1 hour, 52 minutes ago -
Seconds are back in Windows 10!
by
Susan Bradley
2 hours, 26 minutes ago -
WebBrowserPassView — Take inventory of your stored passwords
by
Deanna McElveen
12 hours, 21 minutes ago -
OS news from WWDC 2025
by
Will Fastie
16 hours, 32 minutes ago -
Need help with graphics…
by
WSBatBytes
3 hours, 17 minutes ago -
AMD : Out of Bounds (OOB) read vulnerability in TPM 2.0 CVE-2025-2884
by
Alex5723
1 day, 6 hours ago -
Totally remove or disable BitLocker
by
CWBillow
5 hours, 53 minutes ago -
Windows 10 gets 6 years of ESU?
by
n0ads
9 hours, 9 minutes ago -
Apple, Google stores still offer China-based VPNs, report says
by
Nibbled To Death By Ducks
1 day, 17 hours ago -
Search Forums only bring up my posts?
by
Deo
1 day, 17 hours ago -
Windows Spotlight broken on Enterprise and Pro for Workstations?
by
steeviebops
2 days, 5 hours ago -
Denmark wants to dump Microsoft for Linux + LibreOffice
by
Alex5723
1 day, 21 hours ago -
How to get Microsoft Defender to honor Group Policy Setting
by
Ralph
2 days, 5 hours ago -
Apple : Paragon’s iOS Mercenary Spyware Finds Journalists Target
by
Alex5723
2 days, 15 hours ago -
Music : The Rose Room – It’s Been A Long, Long Time album
by
Alex5723
2 days, 17 hours ago -
Disengage Bitlocker
by
CWBillow
2 days, 7 hours ago -
Mac Mini M2 Service Program for No Power Issue
by
Alex5723
2 days, 19 hours ago -
New Win 11 Pro Geekom Setup questions
by
Deo
1 day, 17 hours ago -
Windows 11 Insider Preview build 26200.5651 released to DEV
by
joep517
3 days, 2 hours ago -
Windows 11 Insider Preview build 26120.4441 (24H2) released to BETA
by
joep517
3 days, 2 hours ago -
iOS 26,, MacOS 26 : Create your own AI chatbot
by
Alex5723
3 days, 6 hours ago -
New PC transfer program recommendations?
by
DaveBoston
1 day, 11 hours ago -
Windows 11 Insider Preview Build 22631.5545 (23H2) released to Release Preview
by
joep517
3 days, 10 hours ago -
Windows 10 Build 19045.6029 (22H2) to Release Preview Channel
by
joep517
3 days, 10 hours ago -
Best tools for upgrading a Windows 10 to an 11
by
Susan Bradley
2 days, 22 hours ago
Recent blog posts
- Ben’s excellent adventure with Linux
- Seconds are back in Windows 10!
- WebBrowserPassView — Take inventory of your stored passwords
- OS news from WWDC 2025
- Best tools for upgrading a Windows 10 to an 11
- Master patch listing for June 10, 2025
- 24H2 may not be offered June updates
- June 2025 updates are out
Key Links
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.