Member
Beiträge: 46
| Hallo Karl,
das hilft mir schon sehr, danke. Ich versuche mal eine Beschreibung, ohne mich in Details zu verlieren, damit Du vielleicht einen Tip zu den "heiklen Zugriffen" formulieren kannst.
Der Server läuft mit Windows Server 2008 R2 Standard. Die Clients haben Windows XP Professional und Windows 7 Home premium. Als Virenschutz läuft Avira Antivir auf den Clients. Bei meinen Tests griffen 1 Windows XP-Rechner und 2 Windows 7 Rechner auf die Datenbank zu. Den Abbruch des Startvorgangs habe ich auf einem der Windows 7 Rechner gemacht.
Die Datenzugriffe in der Startphase sind
1.) Fragen nach der Existenz von Tabellen im Backend mit Hilfe der Funktion:
Function fctTableExists(strTableName As String, strDB As String) As Boolean
Dim wsp As Workspace
Dim db As DAO.Database
Dim tdf As DAO.TableDef
If IsNull(strDB) = True Then
Set db = CurrentDb
Else
Set wsp = DBEngine.Workspaces(0)
Set db = wsp.OpenDatabase(strDB)
'Set db = strDB
End If
For Each tdf In db.TableDefs
If tdf.NAME = strTableName Then fctTableExists = True: Exit For
Next
End Function
Die Tabelle existrierte bei den abgebrochenen Startversuchen.
2.) Dann gibt es 14 eingebundene Tabellen.
3.) Drei Tabellen werden aus dem Backend kopiert mit
Dim db As DAO.Database, dbbase As DAO.Database, namedb As String, str_fehler As String
Set db = CurrentDb
namedb = DLookup("aktdbname", "local")
db.Execute "Insert into einstellungen select * from einstellungen IN '" & namedb & "';"
db.Execute "Insert into Baustein select * from Baustein IN '" & namedb & "';"
db.Execute "Insert into zuzeigen select * from zuzeigen IN '" & namedb & "';"
db.Close
Set db = Nothing
Set dbbase = Nothing
Die längste Zeit vergeht beim Starten wohl, weil sich Access mit den eingebundenen Tabellen sehr lange beschäftigt, wenn bereits ein anderer Client auf das backend zugreift. Ich vermute, dass es in dieser Zeit passiert, das der Abbruch die Inkonsistenz verursacht.
Dein Dirk |