[AccessD] How do I tell if a form is opened as a subform or not?

John W. Colby jcolby at colbyconsulting.com
Thu Mar 13 16:39:00 CST 2003


Gustav,

How about:

'IS THE FORM REFERRED TO IN THE PARAMETER (FRM) CURRENTLY LOADED AS A
SUBFORM?
Function ccIsSubForm(frm As Form) As Boolean
Dim str As String
   On Error Resume Next
   str = frm.Parent.Name
   ccIsSubForm = (err = 0)
   On Error GoTo 0
End Function

If a form has a valid parent property then it is by definition embedded in
another something.  It may be in a tab control, or a form, but it will be a
subform.

John W. Colby
Colby Consulting
www.ColbyConsulting.com

-----Original Message-----
From: accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com]On Behalf Of Gustav Brock
Sent: Wednesday, March 12, 2003 2:17 PM
To: Drew Wutka
Subject: Re: [AccessD] How do I tell if a form is opened as a subform or
not?


Hi Drew

I don't like at all coding where you rely on error generation. It may
very well be quick and dirty code and some like that, but I try to
use it as the last resort only.

Previously I have posted this small function for the same purpose - it
could have been for the benefit of Arthur "the static lover" as you'll
see. It is not much larger than your code:

<code>

Private Function IsSubform() As Boolean

  Static booSubform     As Boolean
  Static lngFormsCount  As Long

  If lngFormsCount = 0 Then
    lngFormsCount = Forms.Count
    booSubform = StrComp(Forms(lngFormsCount - 1).Name, Me.Name,
vbTextCompare)
  End If

  IsSubform = booSubform
      
End Function

</code>

/gustav


> I know, it's just one of my coding habits.  I only use 'resume next' when
I
> want to completely ignore errors.  If I am expecting an error...to use it
> (as in my example), or I am just handling unexpected errors, then I always
> use On Error Goto...

> Make sense?  (your code is smaller....can't deny that!<grin>)

> Drew

> -----Original Message-----
> From: Gustav Brock [mailto:gustav at cactus.dk]
> Sent: Wednesday, March 12, 2003 11:13 AM
> To: Drew Wutka
> Subject: Re: [AccessD] How do I tell if a form is opened as a subform or
> not?


> Hi Drew

> That was an awful lot of code to replace something like these two
> lines: 

> <code>

> Private Function IsSubform() As Boolean

>   On Error Resume Next
>   IsSubform = Me.Parent.hWnd
    
> End Function

> </code>

> /gustav


>> This is from my new MiniCalendar database....still in development...but
> the
>> function works fine.

>> Private Function AmIASubForm() As Boolean
>> On Error GoTo ErrorHandler
>> Dim varTemp
>> varTemp = Me.Parent
>> AmIASubForm = True
>> Exit Function
>> ErrorHandler:
>> Err.Clear
>> AmIASubForm = False
>> End Function

>> -----Original Message-----
>> From: Bruce Bruen [mailto:bbruen at bigpond.com]
>> Sent: Tuesday, March 11, 2003 6:58 PM
>> To: AccessD
>> Subject: [AccessD] How do I tell if a form is opened as a subform or
>> not?


>> Hi List,

>> I am trying to use a form that may appear as a subform or on its own.
>> If it's a subform then I want to maximise it in its parent control
>> space, if not then it should be sized to fit the form.
>> But how do I tell where it is being opened?  The following doesn't work:

>>     On Error Resume Next
>>     If Not IsNull(Me.Parent.Name) Then
>>         boolIsSubform = True
>>         DoCmd.Maximize
>>     Else
>>         boolIsSubform = False
>>     End If
>>     On Error GoTo 0

>> Ignore the fact that the docmd works on the parent, I am not worried
>> about that at the moment, only that I don't know how to test the
>> "subformedness".

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



----------------------------------------------------
Is email taking over your day?  Manage your time with eMailBoss.  
Try it free!  http://www.eMailBoss.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 3592 bytes
Desc: not available
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030313/7802dc08/attachment-0001.bin>


More information about the AccessD mailing list