[AccessD] Limit entry in unbound forms

MarkH markH at bitgen.co.uk
Fri Apr 11 05:33:56 CDT 2003


Thanks Bert... Looking at it now. I think this is pretty much what I was
after.

Cheers

Mark

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bert-Jan
Brinkhuis
Sent: 10 April 2003 21:22
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Limit entry in unbound forms


Mark,

In A2K I use a class module (From Access 2000 Developer's Handbook,
Volume I (like commented in the code)) and on the change event from a
control i like to limit the chracters for i put:

Call adhLimitChars(ctlName, lngNumberOfCharacters)

The class module is called basLimitChars
Code:

Option Compare Database
Option Explicit

' From Access 2000 Developer's Handbook, Volume I
' by Getz, Litwin, and Gilbert (Sybex)
' Copyright 1999.  All rights reserved.

Private Declare Function SendMessageLong _
 Lib "user32" Alias "SendMessageA" _
 (ByVal hWnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, lngValue As Long) As Long

Private Declare Function GetFocus _
 Lib "user32" () As Long

Private Const EM_SETLIMITTEXT As Long = &HC5

Public Sub adhLimitChars(txt As TextBox, lngLimit As Long)
    ' You actually CAN use SendMessage with
    ' Access controls, but you must remember that
    ' the changes you make are only active
    ' as long as this control has the focus.
    ' Therefore, if you want to limit the text in a text
    ' box, you MUST do it each time you enter the
    ' control. To be safe, the only place you can really
    ' do this is in reaction to the Change, BeforeUpdate
    ' or AfterUpdate events.

    Dim hWnd As Long
    Dim lngResult As Long
    Dim lngNewMax As Long

    ' Get the window handle for the current window.
    hWnd = GetFocus()

    ' Hey, what if there's ALREADY too much text in
    ' there?  Limiting the text would make it
    ' impossible to type in there at all.  You want
    ' to set the limit to be the max of the amount
    ' you want and the amount that's in there!
    lngNewMax = Len(txt.Text)
    If lngNewMax < lngLimit Then
        lngNewMax = lngLimit
    End If

    ' Send the message to the current text box
    ' to limit itself to lngNewMax characters.
    SendMessageLong hWnd, EM_SETLIMITTEXT, lngNewMax, 0
End Sub

HTH

Bert-Jan

----- Original Message -----
From: "MarkH" <markH at bitgen.co.uk>
To: <accessd at databaseadvisors.com>
Sent: Thursday, April 10, 2003 10:47 AM
Subject: [AccessD] Limit entry in unbound forms


> Hello all...
>
> I am working with class modules and unbound forms in XP. What I need 
> to do is limit the length of text a user can enter. I would like to do

> this as they type so that its not possible to add text beyond whats 
> allowed. No warning necessary, just stop at the limit.
>
> I intend to store the max length allowed as properties in the class so

> that the frontend can retrive them without having to hard code them. I

> did have a function that could do this but I am away from the office 
> for a few days so don't have it with me :o( (and I didn't write it in 
> the first place so have no memory of how it was done)
>
> Any help greatly appreciated... Also, if theres a better way to do it 
> I'd very much like to hear that too.
>
> Cheers
>
> Mark
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.449 / Virus Database: 251 - Release Date: 27/01/2003
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com 
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.449 / Virus Database: 251 - Release Date: 27/01/2003
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.449 / Virus Database: 251 - Release Date: 27/01/2003
 



More information about the AccessD mailing list