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

Drew Wutka DWUTKA at marlow.com
Wed Mar 12 16:22:00 CST 2003


I know what you are saying about intentionally looking for an error.  It
gives me an uneasy feeling too, but there are some things that just
absolutely require it.

As far as your code, I'm pretty tired so I could be wrong on this, but I
think I could trigger a false positive with your code.  If you opened formA,
then opened formB, then set the source object on a subform on FormA to
FormB, you will now have FormB as a subform on FormA, but your function will
say False, because FormB was the last form to be put into the form's
collection AND it is also now a subform.  (Actually, just tried it, and it
did say false from the subform)

I know, it wouldn't be a common occurrence, but the error method is
guaranteed to be correct.

Drew

-----Original Message-----
From: Gustav Brock [mailto:gustav at cactus.dk]
Sent: Wednesday, March 12, 2003 1: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



More information about the AccessD mailing list