Formular- und Datenbankeinstellungen speichern und wiederherstellen

Berichte

Für Berichte gilt prinzipiell das Gleiche, nur dass Sie hier den Bericht als Report-Objekt an die Prozeduren übergeben (Listing 6). Allerdings scheint Access hier die Breite und Höhe des Fensters nicht zu setzen, wenn Sie sie an die Move-Methode übergeben. Das sieht nach einem Bug von Access aus, da die Move-Methode für Berichte keinen Einschränkungen unterliegt.

Sub BerichtSpeichern(objRep As Report)
SaveSetting appName, objRep.Name, "Hoehe", objRep.WindowHeight
SaveSetting appName, objRep.Name, "Breite", objRep.WindowWidth
SaveSetting appName, objRep.Name, "Oben", objRep.WindowTop
SaveSetting appName, objRep.Name, "Links", objRep.WindowLeft
End Sub
Sub BerichtLaden(objRep As Report)
Dim lngBreite As Long
Dim lngHoehe As Long
Dim lngOben As Long
Dim lngLinks As Long
lngHoehe = GetSetting(appName, objRep.Name, _
"Hoehe", objRep.WindowHeight)
lngBreite = GetSetting(appName, objRep.Name, _
"Breite", objRep.WindowWidth)
lngOben = GetSetting(appName, objRep.Name, _
"Oben", objRep.WindowTop)
lngLinks = GetSetting(appName, objRep.Name, _
"Links", objRep.WindowLeft)
objRep.Move lngLinks, lngOben, lngBreite, lngHoehe
End Sub

Auch in Berichten müssen Sie die Prozeduren natürlich noch aufrufen, indem Sie in jedem Bericht die Ereignisprozeduren aus Listing 7 erstellen.

Private Sub Report_Close()
BerichtSpeichern Me
End Sub
Private Sub Report_Open(Cancel As Integer)
BerichtLaden Me
End Sub