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
'constanten voor controls hier cmd en lbl
'constanten voor header detail en footer
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