Forums Neueste Beiträge
 

Backend komprimieren, die 3.

20/07/2008 - 10:55 von Michael König | Report spam
Hallo Newsgroup,

allmàhlich bringt mich dieses Thema zum Verzweifeln. Seit Monaten
(wirklich) bin ich (immer wieder mal) am Testen, warum ich immer den
Laufzeitfehler 3356 "(Sie haben versucht eine Datenbank zu öffnen, ...)"
bekomme. Nochmal die Ausgangslage: Eine Anwendung mit FE und BE, im FE
ein ungebundenes Startformular, in dem u.a. ein Unterformular als
Endlosformular liegt. Daten-Lieferant für das Unterformular ist eine
Abfrage, die auf das BE zugreift. Im FE eine Schaltflàche "Beenden",
welche eine Abschluss-Prozedur aufruft (siehe unten). Ich habe die
Anwendung schon soweit "abgespeckt", dass wirklich nur noch die
genannten Objekte enthalten sind. Im Ufo ist kein weiterer VBA-Code und
nur die Abfrage als Daten-Lieferant. Wenn ich das Unterformular aus dem
Startformular lösche, klappt die Komprimierung, also muss es irgendwie
mit dem Ufo zusammen hàngen, aber wie.

Bitte erlöst mich aus meiner Verzweiflung ;-)

Gruß und schönen Sonntag
Michael


Hier der VBA-Code zu der "Beenden"-Schaltflàche:
'--
Private Sub cmdExitAccess_Click()
'--

Application.Echo False
Me(subFormName).Form.Visible = False
Me(subFormName).Form.RecordSource = ""
CloseUp

End Sub

'--

Hier die Abschluss-Prozedur (in einem sep. Modul):
Attribute VB_Name = "modCloseUp"
'--
Option Compare Database
Option Explicit

'--
Public Function CloseUp()
' Zweck : Close-Prozedur
' Parameter: -
' Rückgabe : -
'--
On Error GoTo Err_CloseUp

Dim strBEDBName As String

' Anwendungs-Umgebung sichern bzw. zurücksetzen
Application.SetOption "Default Find/Replace Behavior", varFdRepBeh
Application.SetOption "Move After Enter", varMovAftEnt
Application.SetOption "Behavior Entering Field", varBehEntFld
CB_Reset ' Die CommandBars zurück setzen

If IsLoaded("frmNoExit") Then Forms!frmNoExit!Erlaubt = True
AccObjSchliessen ("Reports")
AccObjSchliessen ("Forms")
strBEDBName = Nz(GetDBProperty("BEDBName"), "") ' Name des BE
If strBEDBName <> "" Then CompactDB strBEDBName

Exit_CloseUp:
On Error GoTo 0
DoCmd.Quit
Exit Function

Err_CloseUp:
MsgBox "Fehler " & Err.Number & " (" & Err.Description & _
") in Prozedur " & ScrubInput("CloseUp"), _
vbCritical + vbOKOnly, _
"Modul modCloseUp (Typ: Modul)"
Resume Exit_CloseUp

End Function

'--
 

Lesen sie die antworten

#1 Thomas Möller
20/07/2008 - 11:08 | Warnen spam
Hallo Michael,

Michael König schrieb:
allmàhlich bringt mich dieses Thema zum Verzweifeln. Seit Monaten
(wirklich) bin ich (immer wieder mal) am Testen, warum ich immer den
Laufzeitfehler 3356 "(Sie haben versucht eine Datenbank zu öffnen, ...)"
bekomme. Nochmal die Ausgangslage: Eine Anwendung mit FE und BE, im FE
ein ungebundenes Startformular, in dem u.a. ein Unterformular als
Endlosformular liegt. Daten-Lieferant für das Unterformular ist eine
Abfrage, die auf das BE zugreift. Im FE eine Schaltflàche "Beenden",
welche eine Abschluss-Prozedur aufruft (siehe unten). Ich habe die
Anwendung schon soweit "abgespeckt", dass wirklich nur noch die
genannten Objekte enthalten sind. Im Ufo ist kein weiterer VBA-Code und
nur die Abfrage als Daten-Lieferant. Wenn ich das Unterformular aus dem
Startformular lösche, klappt die Komprimierung, also muss es irgendwie
mit dem Ufo zusammen hàngen, aber wie.



IMHO gibst Du Dir die Antwort eigentlich schon selbst. Wenn Du das
BackEnd komprimieren willst, darfst Du keine Daten mehr daraus anzeigen.
Das tust Du aber mit Deinem Unterformular. Über dessen Abfrage greifst
Du auf das BackEnd zu. Deshalb funktioniert es auch, wenn Du das
Unterformular aus dem Startformular löscht.

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen