Symptome
SPEED Ferret meldet run-time error 91 (Object variable of With block variable not set) wenn Sie im Access 97 oder Access 200 Projekt Parameter Dialogfenster auf OK drücken.
Ursache
SPEED Ferret konnte die Arbeitsgruppendatei, die Sie im Feld Workgroup Filename angegeben haben nicht finden.
Der wahrscheinlichste Fall ist, dass die angegebene Datei keine gültige Arbeitsgruppendatei ist. Eine andere Möglichkeit ist, dass ein Fehler in Ihrer Microsoft DAO und/oder Microsoft Jet Software Installation vorliegt.
Hintergrund
Jede Version von Access bringt Ihre eigenen Arbeitsgruppendatei system.mdw mit sich. Diese wird üblicherweise im Verzeichnis Windows\System (oder Winnt\System32) installiert. Es ist auch möglich, dass es sich eine gemeinsam benutzte Datei von einem Netzwerklaufwerk zu verwenden.
Jede Kopie von Access bringt auch ihre eigene Version der Microsoft DAO (Data Access Objects) und der Microsoft Jet Datenbankengine mit sich. SPEED Ferret verwendet DAO Funktionalität die von den meisten Access Anwendungen nicht gefordert wird. Es kann also ein DAO oder Jet Installationsproblem vorliegen, ohne dass Sie dies bemerken bis Sie SPEED Ferret verwenden.
Workaround
Stellen Sie sicher, dass Sie den korrekten Pfad für Ihre Arbeitsgruppendatei im Feld Workgroup Filename angegeben haben.
Wenn dadurch das Problem nicht behoben wird, müssen Sie wie folgt vorgehen um festzustellen warum SPEED ferret keinen DAO Workspace auf Ihrem System erstellen kann:
- Erstellen Sie eine Access 97 oder Access 2000 Datenbank.
- Erstellen Sie ein neues Modul
- Fügen Sie den nachfolgenden Code in das neue Modul ein.
- Setzen Sie einen Verweis auf die DAO 3.51 oder 3.6 Object Library. (Wählen Sie hierzu Extras/Verweise)
- Setzen Sie die Konstanten WorkgroupPath, Username und Password wie erforderlich.
- Öffnen Sie das Direktfenster und führen Sie die Test() Funktion aus.
Sub Test()
Const cWorkgroupPath = "c:\winnt\system32\system.mdw"
Const cUsername = "Admin"
Const cPassword = ""
Dim DBEngine As DAO.DBEngine
Dim Workspace As DAO.Workspace
Dim ErrCode As Long
Dim ErrMsg As String
On Error Resume Next
Set DBEngine = New DAO.DBEngine
ErrCode = Err.Number
ErrMsg = Err.Description
On Error GoTo 0
If ErrCode <> 0 Then
Debug.Print "Unable to instantiate DBEngine. Run-time error " + CStr(ErrCode) + ": " + ErrMsg
Exit Sub
End If
On Error Resume Next
DBEngine.SystemDB = cWorkgroupPath
ErrCode = Err.Number
ErrMsg = Err.Description
On Error GoTo 0
If ErrCode <> 0 Then
Debug.Print "Unable to set SystemDB. Run-time error " + CStr(ErrCode) + ": " + ErrMsg
Exit Sub
End If
On Error Resume Next
Set Workspace = DBEngine.CreateWorkspace("SPEEDFerret", cUsername, cPassword)
ErrCode = Err.Number
ErrMsg = Err.Description
On Error GoTo 0
If ErrCode <> 0 Then
Debug.Print "Unable to create workspace. Run-time error " + CStr(ErrCode) + ": " + ErrMsg
Exit Sub
End If
Debug.Print "Workspace created successfully."
Debug.Print "UserName: " + Workspace.UserName
End Sub
Eine oder mehrere Zeilen werden daraufhin in Ihrem Direktfenster ausgegeben.
Wird die Meldung "Unable to create workspace. Run-time error 3445: Incorrect version of the DLL file 'MSJET35.DLL' was found." angezeigt, so ist Ihre DAO und/oder Jet installation beschädigt und Sie müssen Microsoft Access neu installieren.
Lösung
In der nächsten SPEED Ferret Version wird die Fehlerbehandlung verbessert und es wird eine Fehlerbeschreibung angezeigt, die den genauen Grund angibt, warum die Arbeitsgruppendatei nicht geöffnet werden konnte. Das Veröffentlichungsdatum des Updates wurde noch nicht festgelegt. Näheres wird auf unserer Homepage (www.liza.com) bekanntgegeben.