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]