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