[AccessD] JIT Forms?

John W. Colby jwcolby at colbyconsulting.com
Sat Sep 4 15:44:51 CDT 2004


This brings us to the question of "where the heck does Access store this
stuff".  As you know there is a class (MODULE) behind a form where you can
add your own code, but there is an additional "something" where the form
controls and stuff resides.  I have always wondered where that "something"
is (but not enough to do the research).

;-)

It is almost as if that stuff were made invisible somehow.  If you export a
class to a text file there is stuff at the top of the file (properties) that
are not visible from the IDE editor when viewing the class.

John W. Colby
www.ColbyConsulting.com 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MartyConnelly
Sent: Saturday, September 04, 2004 3:56 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] JIT Forms?


You can't recompile code in an mde
But here is some example code to read code in a Form
You can also write code to a form
Have a look at http://www.helenfeddema.com
Design Schemas accarch76.zip  and 77
She modifies existing controls at runtime and adds code.

Function ListAllProcsinForms(strModuleName As String)
'Purpose: lists all procedures/functions for given module
'Example: ListAllProcsinForms ("MyForm")
    Dim mdlF As Form
    Dim mdl As Module
    Dim lngCount As Long, lngCountDecl As Long, lngI As Long
    Dim strProcName As String, astrProcNames() As String
    Dim intI As Integer, strMsg As String
    Dim lngR As Long

    ' Open specified Module object.
    DoCmd.OpenForm strModuleName,acDesign 'open in design view

    ' Return reference to Form object.
     
    Set mdlF = Forms(strModuleName)
    ' Return reference to Module object.
      Set mdl = mdlF.Module
    ' Count lines in module.
 
    lngCount = mdl.CountOfLines
    ' Count lines in Declaration section in module.

    lngCountDecl = mdl.CountOfDeclarationLines
    ' Determine name of first procedure.
    strProcName = mdl.ProcOfLine(lngCountDecl + 1, lngR)
    ' Initialize counter variable.
    intI = 0
    ' Redimension array.
    ReDim Preserve astrProcNames(intI)
    ' Store name of first procedure in array.
    astrProcNames(intI) = strProcName

    ' Determine procedure name for each line after declarations.
    For lngI = lngCountDecl + 1 To lngCount
        ' Compare procedure name with ProcOfLine property value.

        If strProcName <> mdl.ProcOfLine(lngI, lngR) Then
            ' Increment counter.
            intI = intI + 1
            strProcName = mdl.ProcOfLine(lngI, lngR)
            ReDim Preserve astrProcNames(intI)
            ' Assign unique procedure names to array.
            astrProcNames(intI) = strProcName
        End If
    Next lngI

    strMsg = "Procedures in module '" & strModuleName & "': " _
        & vbCrLf & vbCrLf
    Debug.Print "Procedures in module '" & strModuleName & "': "

    For intI = 0 To UBound(astrProcNames)
        strMsg = strMsg & astrProcNames(intI) & vbCrLf
'Print list in debug window:
        Debug.Print astrProcNames(intI)
    Next intI

' Dialog box listing all procedures in module.
    MsgBox strMsg
End Function

Charlotte Foust wrote:

>I've only used it at design time, so I can't say.  I don't suppose it's 
>all that different from changing the paper size at run time.
>
>Charlotte Foust
>
>
>-----Original Message-----
>From: John W. Colby [mailto:jwcolby at colbyconsulting.com]
>Sent: Friday, September 03, 2004 2:13 PM
>To: 'Access Developers discussion and problem solving'
>Subject: RE: [AccessD] JIT Forms?
>
>
>Charlotte,
>
>Do you know if this works at runtime or only at design time?
>
>John W. Colby
>www.ColbyConsulting.com
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte 
>Foust
>Sent: Friday, September 03, 2004 4:03 PM
>To: Access Developers discussion and problem solving
>Subject: RE: [AccessD] JIT Forms?
>
>
>Look at the Application.CreateControl method for creating controls from 
>code.  If you want code behind that control, you need to add that to 
>the form's module and set the control's named event to "[event 
>procedure]" to connect them.
>
>Charlotte Foust
>
>
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada



-- 
_______________________________________________
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