In einer Adressdatenbank ist eine Personentabelle mit einer Firmentabelle
über ein gemeinsames ID-Feld verknüpft. Will man diese Zuordnung löschen
(mit untenstehender Prozedur) funktioniert dies genau einmal. Weitere Lösch-
oder Neuzuordnungsversuche (mit ähnlicher gestrickter Prozedur) werden mit
der Fehlermeldung
"3420: Das Objekt ist ungültig oder es ist nicht mehr festgelegt" quittiert.
Dabei wird der RecordSet R in der Zeile R = Me.RecordsetClone nicht mehr
richtig initialisiert. Programm steigt dann in der Zeile
R.Bookmark=Me.Bookmark aus.
Kann mir hierzu jemand einen Tipp geben. Ich habe dasProgramm übernommen und
muss es nun pflegen, ohne viel Kenntnisse in VisualBasic Programmierung zu
haben.
Private Sub Knopf_Zuordnung_löschen_Click()
On Error GoTo Fehler
Dim WS As Workspace
Dim DB As DATABASE
Dim R As Recordset
Dim Lesezeichen As String
If MsgBox("Zuordnung wirklich löschen ?", vbYesNo + ybQuestion, "Frage") =
6 Then
Set WS = DBEngine.Workspaces(0)
Set DB = CurrentDb
WS.BeginTrans
Set R = Me.RecordsetClone
R.Bookmark = Me.Bookmark
FirmenID = R![Person.FIN]
R.Edit
R![Person.Zuletzt_geändert] = Now()
R![Person.FIN] = Null
R.Update
R.Close
Set R = DB.OpenRecordset("Firma")
R.FindFirst "[FIN] = " & FirmenID
R.Edit
R!Zuletzt_geändert = Now()
R.Update
R.Close
DB.Close
WS.CommitTrans
WS.Close
Me.Refresh
End If
Exit Sub
Fehler:
WS.Rollback
MsgBox ("Fehler " & Err & ": " & Error)
End Sub
CU Detlef
Detlef Russ wrote:
> Hallo,
Hallo Detlef,
versuch es mal nach jeder xxxx.Close Anweisung mit
xxxxxx.Close
Set xxxxx = Nothing
wenn das nicht hilft, dann am ende des Programm's mit
DoCmd.RunCommand acCmdRefresh
beenden anstelle von
Me.Refresh ' Bei älteren Jet Versionen funktionierte dies nicht richtig.
oder doch ganz anders ??!??
mfg
Berni