ADD-in Opmaak

Add-Inn : C Menu Add-Inn Opmaak formulieren en Controls.

Im mijn MS Access toepassingen tracht ik een zekere consistentie na te streven bij de opmaak van formulieren en besturingselementen (Access-controls). Ondanks de vele opmaak mogelijkheden in Access 2010 heb ik gepoogd om via een Add-Inn dit proces te automatiseren.

Een eerste stap bestaat erin de Leszynski benamings overeenkomst toe te passen op de besturingselementen (Access-controls).
Zie daaromtrent Add-Inn : B Menu Add-Inn toepassen Leszynski benamings overeenkomst.

Vervolgens pas ik een bepaalde typologie toe op mogelijke formulieren door aan het einde van de formuliernaam een nummer toe te voegen, een zogenaamde 'Suffix' Ik voorzie daartoe de nodige constanten.
Een andere optie zou kunnen zijn de aanduiding van het type formulier te noteren in de 'Tag' eigenschap van het fomulier. Daar ik in mijn toepassingen veelvuldig via de 'Tag' eigenschap informatie van het ene formulier doorgeef zag ik daar hier van af.

Declaratie van de constanten in VBA.

'constanten voor formulieren

  • Public Const av_Form_S_H_F As Integer = 10 'S staat voor single
  • Public Const av_Form_S As Integer = 20
  • Public Const av_Form_C_H_F As Integer = 30 'C staat voor continous
  • Public Const av_Form_C As Integer = 40
  • Public Const av_Sform_S_H_F As Integer = 50
  • Public Const av_Sform_S As Integer = 60
  • Public Const av_Sform_C_H_F As Integer = 70
  • Public Const av_Sform_C As Integer = 80

'constanten voor controls hier cmd en lbl

  • Public Const av_cmd_hyp As String = "hyp"
  • Public Const av_lbl_tit As String = "tit" ' voor titel

'constanten voor header detail en footer

  • Public Const BLA As String = "BLA" 'staat voor blauw
  • Public Const ZWA As String = "ZWA" ' staat voor zwart
  • Public Const GRO As String = "GRO" ' staat voor groen
  • Public Const GRI As String = "GRI" ' staat voor grijs

Opbouw van de VBA code.

'de werwijze bestaat er in om via de AllForms eigenschap
'van CurrentProject alle formulieren te doorlopen, te openen in ontwerpmodus en de routine
'sOpmaakGlob aan te roepen, deze routine wordt verder besproken.

Public Function f_av_Opmaak()
        Dim aobj As Access.AccessObject
        Dim accFormulier As Access.Form
        Dim strFormulierNaam As String
            For Each aobj In CurrentProject.AllForms
                DoCmd.OpenForm aobj.Name, acDesign
                    Set accFormulier = Forms(aobj.Name)
                    Call sOpmaakGlob(accFormulier)
                DoCmd.Close acForm, aobj.Name, acSaveYes
            Next aobj
        End Function
        

Op zijn beurt roept de routine sOpmaakGlob verschillende routines op die
'die naast het instellen van de Formulier eigenschappen zorgen voor de opmaak van :
'de secties Header, Detail en footer
'en tenslotte een routine die zorgt voor de opmaak van de controls of besturingselementen

Public Sub sOpmaakGlob(ByVal acFormulier As Access.Form)
        Dim ctr As Access.Control
        
        Select Case Right(acFormulier.Name, 2)
        Case Is = av_Form_S_H_F
            acFormulier.RecordSelectors = False
            acFormulier.NavigationButtons = True
            acFormulier.DefaultView = 0 'single
            acFormulier.AutoCenter = True
            acFormulier.ScrollBars = 0 'neither
            Call Opm_av_Head(acFormulier)
            Call Opm_av_Detail(acFormulier)
            Call Opm_av_Foot(acFormulier)
        
        
        Case Is = av_Form_S
            acFormulier.RecordSelectors = False
            acFormulier.NavigationButtons = True
            acFormulier.DefaultView = 0 'single
            acFormulier.AutoCenter = True
            acFormulier.ScrollBars = 0 'Neither
            Call Opm_av_Detail(acFormulier)
        
        '
        Case Is = av_Form_C_H_F
            acFormulier.RecordSelectors = True
            acFormulier.AutoCenter = True
            acFormulier.DefaultView = 1 'continous
            acFormulier.ScrollBars = 2 'vertical only
            Call Opm_av_Head(acFormulier)
            Call Opm_av_Detail(acFormulier)
            Call Opm_av_Foot(acFormulier)
        
        
        Case Is = av_Form_C
            acFormulier.RecordSelectors = True
            acFormulier.AutoCenter = True
            acFormulier.DefaultView = 1 'continous
            acFormulier.ScrollBars = 2 'vertical only
            Call Opm_av_Detail(acFormulier)
        
        
        Case Is = av_Sform_S_H_F
            acFormulier.RecordSelectors = False
            acFormulier.NavigationButtons = True
            acFormulier.ScrollBars = 0 'neither
            Call Opm_av_Head(acFormulier)
            Call Opm_av_Detail(acFormulier)
            Call Opm_av_Foot(acFormulier)
        
        Case Is = av_Sform_S
            acFormulier.RecordSelectors = False
            acFormulier.NavigationButtons = True
            acFormulier.ScrollBars = 0 'neither
            Call Opm_av_Detail(acFormulier)
        
        Case Is = av_Sform_C_H_F
            acFormulier.RecordSelectors = True
            acFormulier.NavigationButtons = True
            acFormulier.DefaultView = 1 'continous
            Call Opm_av_Head(acFormulier)
            Call Opm_av_Detail(acFormulier)
            Call Opm_av_Foot(acFormulier)
        
        Case Is = av_Sform_C
            acFormulier.RecordSelectors = True
            acFormulier.DefaultView = 1 'continous
            Call Opm_av_Detail(acFormulier)        
        End Select        
        End Sub    
        
        
Begin