Hallo zusammen,
Ich habe heute beim Löschen einer Tabelle die nicht mehr gebraucht wird die Fehlermeldung 3211 kann Tabelle nicht sperren .....
bekommen. Da nur ich diese Datenbank bearbeite kann kein Anderer User auf die tabelle zugreifen auch habe ich alle OpenRecordset im VBA-Code nachgesehen aber keins gefunden welches nicht wieder geschlossen wird. Ich habe schon probiert das Recordset in dem Formular zu schließen und auch auf die Frage ob das Formular Dirty ist habe ich wie erwartet Falsch angezeigt bekommen. Alles das hat nicht funktioniert. Ach ja die Tabelle befindet sich im einem UFO das aber keine Beziehung zum HFo hat da es rein zur Anzeige dient. Auch hat die Tabelle keine Beziehungen zu anderen Tabellen. Frage wie kann ich feststellen wo noch auf diese Tabelle zugegriffen wird? Wer hat da eine Tip für mich?
Danke und Gruß Dieter
Ich weiß nicht ob Dir dies weiter hilft, aber schaue Dir mal folgenden Link an:
http://bytes.com/topic/access/answers/204233-how-clear-lock-table-if-error-3211-a
Hallo,
"Ach ja die Tabelle befindet sich im einem UFO.."
da wird doch auf die Tabelle zugegriffen.....
Schließ halt mal alle Formulare und sonstige "Objekte".. Oder starte die Db neu und lösch gleich die Tabelle
Hallo zusammen,
@ edgar.basler
danke erstmal für den Link, das ist vielleicht eine Möglichkeit, muß ich allerdings noch testen.
@ DF6GL
Ich habe schon probiert im UFO die Recordsource="" und das Datenherkunftobjekt = "" so dass das Ufo eigendlich leer ist, hat nicht geholfen. Das einzige was ich mir vorstellen kann ist, da das Ufo im HFO gesagt bekommt welche Tabelle und welches Herkunftobjekt geladen werden soll (das ist aber auch das einzige) dass Access dadurch eine Bezug herstellt. Natürlich wenn ich die DB neu starte oder das HFO schließe kann ich die Tabelle händisch löschen, das funktioniert. Aber es sollte doch auch einen Weg geben das per VBA zu erledigen. Die Lösung von Edgar läuft auch darauf hinaus, das HFO zu schließen, die Tabelle zu löschen, das HFO wieder zu öffnen. Wenn gar nichts hilft werde ich das verwenden müssen,obwohl ich dadurch ein flimmern am Bildschirm erzeugen werde(was ich normalerweise hasse).
Hat vielleicht sonst jemand noch eine Idee, wie man das eleganter lösen kann?
Danke und Gruß
Dieter
Hallo,
es beißt die Maus den Faden nicht... die Verbindung des UFO's zur Tabelle muß getrennt werden.
"so dass das Ufo eigendlich leer ist"
was heißt "eigentlich"?
ist das UFO (das (Unter-) Formular) nun leer oder nicht , bzw. wird es angezeigt oder nicht?
Ist das UFO selber die "Anzeige" (Gebundenes Formular) oder befindet sich auf dem Form z. B. ein Listenfeld zur Anzeige der Tabelle?
Mit
Me!Ufo_Steuerelement.SourceObject=""
Me!Ufo_Steuerelement.LinkChildFields=""
Me!Ufo_Steuerelement.LinkMasterFields = ""
sollte das Ufo-Steuerelement kein Formular mehr anzeigen und die an das (Unter-)Form gebundene Tabelle sollte löschbar sein.
Hallo DF6GL
genau so habe ich es gemacht zusätzlich habe ich noch Me!Ufo_Steuerelement.Form.RecordSource="" in den Code eingefügt dennoch bekomme ich den Fehler.
Auf dem HFO befindet sich ein weiters UFO zur Anzeige der entsprechenden Tabelle.
Über einen Button wird das Ufo mit der Tabelle zuerst "geleert"
Me!Ufo_Steuerelement.SourceObject=""
Me!Ufo_Steuerelement.LinkChildFields=""
Me!Ufo_Steuerelement.LinkMasterFields = ""
Me!Ufo_Steuerelement.Form.RecordSource=""
so wie du es beschrieben hast und danach soll es gelöscht werden. Wobei
Me!Ufo_Steuerelement.LinkChildFields=""
Me!Ufo_Steuerelement.LinkMasterFields = ""
nicht nötig sind da das Ufo nicht an das HFO gebunden ist (habe es aber trotzdem reingeschrieben).
Gruß Dieter
Hallo,
"befindet sich ein weiters UFO zur Anzeige der entsprechenden Tabelle" ???
hoffentlich hast Du NICHT
Me!Ufo_Steuerelement.Form.RecordSource=""
GENAUSO hingeschrieben.... :o
Ufo_Steuerelement muß durch den richtigen Namen des Ufo-Steuerelementes erstetzt werden...
Hallo DF6GL,
nein ich habe mich nur deiner Schreibweise angepasst.
Gruß Dieter
Hallo zusammen,
Also ich habe jetzt zwei Tage experimentiert und probiert das Problem in den Griff zu bekommen ohne Erfolg. die Datei läßt sich nur löschen wenn ich das händich erledige. Das Formular vor dem löschen zu schließen und danach wieder zu öffnen brachte nichts. Ich habe getestet ob mir Access irgendeinen Bezug im Master oder Childfield herstellt ohne dass ich es merke, aber da war nichts, auch habe ich probiert mir dem Cmd.Close acTable die Tabelle zu schließen, brachte aber auch nichts. Dann habe ich den VBA-Code durchsucht ob ich ein Recordset vergessen habe wieder zu schließen, auch nichts. Ich stehe vor einem Rätsel. Gibt es irgendeine Möglichkeit herauszufinden wo diese Tabelle benutzt wird? oder wie man diese Tabelle so schließen kann, dass sie wieder als unbenutzt dem System zur Verfühgung steht? Oder kann es am Ende ein korrupter Fehler im Formular, Modul sein, hat da jemand eine Idee?
Ich hoffe mir kann da jemand noch einen Tip geben.
Danke und Gruß Dieter