Connecting Tech Pros Worldwide Help | Site Map

Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

 
LinkBack Thread Tools Search this Thread
  #1  
Old February 15th, 2006, 03:25 PM
MLH
Guest
 
Posts: n/a
Default Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

Seeking code to ID & print all controls on all forms having a
ValidationRule property set - but no ValidationText property
setting. Perhaps some modification of the following procedure
would do it?

Private Sub ListControlsBttn_Click()
'************************************************* ************************
' Purpose: Run the Controls Collection for user-specified form.
' The controls collection is a form's default collection.
'************************************************* ************************
On Error GoTo ListControlsBttn_ClickError
Dim ThisForm As String
ThisForm = Me.Name
Dim i As Integer, intHowmany As Integer, WhichForm As String

Msg = "Enter form name." ' Set prompt.
Title = "Form Name?" ' Set title.
Defvalue = "frmListThings" ' Set default return value.
WhichForm = InputBox$(Msg, Title, Defvalue) ' Get user input.
If WhichForm = "" Then Exit Sub
For i = 0 To Forms(WhichForm).Count - 1
intHowmany = intHowmany + 1
Debug.Print intHowmany; ") "; Forms(WhichForm)(i).Name
Next i

ExitButton11_Click:
Exit Sub

ListControlsBttn_ClickError:
Dim r As String, k As String, Message3 As String
r = "The following unexpected error occurred in Sub
ListControlsBttn_Click, CBF on " & ThisForm & "."
k = CRLF & CRLF & "Error # " & Trim$(str$(Err)) & ": " & Quote &
Error$ & Quote
Message3 = r & k
MsgBox Message3, vbExclamation, "Unexpected Error - " & MyApp$ &
", rev. " & MY_VERSION$
Resume ExitButton11_Click

End Sub


  #2  
Old February 15th, 2006, 04:05 PM
Allen Browne
Guest
 
Posts: n/a
Default Re: Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

Perhaps something like this, if you are using Access 2000 or later:

Function FindRuleText()
Dim accobj As AccessObject
Dim ctl As Control
Dim strDoc As String

For Each accobj In CurrentProject.AllForms
strDoc = accobj.Name
DoCmd.OpenForm strDoc, acDesign, WindowMode:=acHidden
For Each ctl In Forms(strDoc).Controls
If HasProperty(ctl, "ValidationRule") Then
If (ctl.ValidationRule <> vbNullString) And
(ctl.ValidationText = vbNullString) Then
Debug.Print strDoc & "." & ctl.Name
End If
End If
Next
DoCmd.Close acForm, strDoc
Next
End Function
Public Function HasProperty(obj As Object, strPropName As String) As Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant
On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

"MLH" <CRCI@NorthState.net> wrote in message
news:hkk6v15mcmut08ug90sfnjjpi1iso444bl@4ax.com...[color=blue]
> Seeking code to ID & print all controls on all forms having a
> ValidationRule property set - but no ValidationText property
> setting. Perhaps some modification of the following procedure
> would do it?[/color]


  #3  
Old February 15th, 2006, 04:15 PM
Lyle Fairfield
Guest
 
Posts: n/a
Default Re: Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

You have the patience of Job, Allen.

  #4  
Old February 16th, 2006, 04:45 AM
MLH
Guest
 
Posts: n/a
Default Re: Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

I'll have a go at this in A97. Thx 4 suggestion.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

On Thu, 16 Feb 2006 00:46:41 +0800, "Allen Browne"
<AllenBrowne@SeeSig.Invalid> wrote:
[color=blue]
>Perhaps something like this, if you are using Access 2000 or later:
>
>Function FindRuleText()
> Dim accobj As AccessObject
> Dim ctl As Control
> Dim strDoc As String
>
> For Each accobj In CurrentProject.AllForms
> strDoc = accobj.Name
> DoCmd.OpenForm strDoc, acDesign, WindowMode:=acHidden
> For Each ctl In Forms(strDoc).Controls
> If HasProperty(ctl, "ValidationRule") Then
> If (ctl.ValidationRule <> vbNullString) And
>(ctl.ValidationText = vbNullString) Then
> Debug.Print strDoc & "." & ctl.Name
> End If
> End If
> Next
> DoCmd.Close acForm, strDoc
> Next
>End Function
>Public Function HasProperty(obj As Object, strPropName As String) As Boolean
> 'Purpose: Return true if the object has the property.
> Dim varDummy As Variant
> On Error Resume Next
> varDummy = obj.Properties(strPropName)
> HasProperty = (Err.Number = 0)
>End Function[/color]

  #5  
Old February 16th, 2006, 05:55 AM
Allen Browne
Guest
 
Posts: n/a
Default Re: Seeking code to ID & print all controls having a ValidationRule property set - but no ValidationText

A97 does not have the AllForms collection.

To loop through the names of the forms, OpenRecordset on:
SELECT [Name] FROM MsysObjects
WHERE (([Type] = -32768) AND ([Name] Not Like '~*'))
ORDER BY MsysObjects.Name;

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

"MLH" <CRCI@NorthState.net> wrote in message
news:5a38v1pm6h0kba0ors120nsfjq2rel7ton@4ax.com...[color=blue]
> I'll have a go at this in A97. Thx 4 suggestion.
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> On Thu, 16 Feb 2006 00:46:41 +0800, "Allen Browne"
> <AllenBrowne@SeeSig.Invalid> wrote:
>[color=green]
>>Perhaps something like this, if you are using Access 2000 or later:
>>
>>Function FindRuleText()
>> Dim accobj As AccessObject
>> Dim ctl As Control
>> Dim strDoc As String
>>
>> For Each accobj In CurrentProject.AllForms
>> strDoc = accobj.Name
>> DoCmd.OpenForm strDoc, acDesign, WindowMode:=acHidden
>> For Each ctl In Forms(strDoc).Controls
>> If HasProperty(ctl, "ValidationRule") Then
>> If (ctl.ValidationRule <> vbNullString) And
>>(ctl.ValidationText = vbNullString) Then
>> Debug.Print strDoc & "." & ctl.Name
>> End If
>> End If
>> Next
>> DoCmd.Close acForm, strDoc
>> Next
>>End Function
>>Public Function HasProperty(obj As Object, strPropName As String) As
>>Boolean
>> 'Purpose: Return true if the object has the property.
>> Dim varDummy As Variant
>> On Error Resume Next
>> varDummy = obj.Properties(strPropName)
>> HasProperty = (Err.Number = 0)
>>End Function[/color][/color]


 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,662 network members.