Dynamische Layouts

Spalten speichern

Zu den Layoutdaten müssen anschließend die Eigenschaften aller Spalten gespeichert werden. In Listing 5 schreibt eine Schleife über alle Controls deren benötigte Werte in tblSpalten.

[...Fortsetzung von Listing Fehler! Verweisquelle konnte nicht gefunden werden.]
lngID = DLookup("LID", "qryLayoutsPersoenlich", _
"LName='" & strNamePlus & "' AND " & _
"LObjektname = '" & strObjName & "'")
Set objActive = ObjCurrent()
For Each ctlControl In objActive.Controls
If IstTypKorrekt(ctlControl) Then
strSQL = "INSERT INTO tblSpalten " & _
"(SLIDRef, SFeldname, SBreite, " & _
"SPosition, SFixiert, SAusgeblendet) " & _
"VALUES (" & lngID & ", '" & _
ctlControl.Name & "', " & _
ctlControl.ColumnWidth & ", " & _
ctlControl.ColumnOrder & ", " & _
CInt(ctlControl.ColumnOrder < _
objActive.FrozenColumns) & ", " & _
CInt(ctlControl.ColumnHidden) & ")"
CurrentDb.Execute strSQL, dbFailOnError
End If
Next
MsgBox "Layout '" & strNamePlus & "' für '" & _
strObjName & "' wurde gespeichert.", _
vbInformation
End Sub

Bild 2: Definition von tblSpalten.
Bild 2: Definition von tblSpalten.

Beim Speichern der Daten wird pro Spalte ein Datensatz mit den gewünschten Informationen (Name, Breite, Reihenfolge, Ausgeblendet) und die Referenz-ID auf den Layoutnamen eingetragen.