PDA

Vollständige Version anzeigen : Benutzte Tabelle freigeben


Raller
19.02.2003, 09:12
Moin,

ich versuche folgendes:

Ein Form hat einen Button "IMPORT".
Damit soll aus einer anderen Datenbank die Tabelle für das Formular neu geladen werden.

Vorher soll natürlich die bestehende Tabelle gelöscht werden.

DoCmd.DeleteObject strObjektArt, strObjektName

Leider geht das nicht, weil Access sagt: "... kann nicht gesperrt werden, ein anderer Benutzer oder Prozess ..."

obwohl ich das Formular vorher geschloßen habe und der import in einer Modul-Funktion liegt.

Kann man die Sperre lösen?

Gruß
Raller

strausto
19.02.2003, 09:22
Hi Raller! :)

Genau das gleiche Problem habe ich auch und versuche das seit einiger Zeit zu lösen. Bin mal gespannt ob jemand eine Lösung kennt.

khs-hh
19.02.2003, 09:30
Ich kann mir nur vorstellen, dass das Formular doch noch offen ist.

Es ist also ein Button auf dem Formular. Bei Click wird eine Funktion gestartet.

Und wo schließst Du das Formular. Es reicht ja nicht, wenn Deine Funktion nicht im Formular liegt sondern im allg Modul. Der aufrufende Code (hinter dem Button) wartet doch auf die Beendigung der Funktion (ehe er weiterläuft und das Form schliesst)

Oder habe ich Deine Konstruktion völlig falsch verstanden?

Raller
19.02.2003, 09:53
Hallo khs-hh,

der Button_Click wandert sofort in eine allg. Modul-Funktion. Dort wird das Form geschlossen (weil ich vermutetete, dass es noch nicht wirklich geschlossen ist, solange ich in der Button_Click bin).

Das Form wird also in dem allg. Modul, nicht in dem Form-Code geschlossen, und auch nicht mehr am Bildschirm.
Trotzdem ist die Tabelle nicht frei.

Gruß
raller

khs-hh
19.02.2003, 10:09
grübel, zweifel...

der Button_Click wandert sofort in eine allg. Modul-Funktion.

Was heisst schon wandern? Letztlich ist doch der Code Button_Click noch aktiv, er ruft nur die Funktion auf. Und dann ziehst Du ihm den Boden weg durch schliessen des Formulars.

Ich weiss nicht so recht. Irgendwie muss ja doch das Formular noch geöffnet sein. Ich würde eine Konstruktionsänderung vorschlagen.

Es ist ja nicht so ganz glücklich, dass Du aus dem Formular heraus so eine Aktion startest, die ausgerechnet die gebundene Tabelle löschen will.

Könntest Du nicht den Button in ein Formular verlegen, welches ungebunden oder zumindest an eine andere Tabelle gebunden ist?

Raller
19.02.2003, 10:16
Hallo khs-hh,

das ist wohl eine Lösung, aber nicht so elegant.
Der User soll ja praktisch die Daten "aktualisieren" können.

Wenn es aber so nicht geht finde ich Deinen Vorschlag ganz gut und überlege mir, wie ich es dem User "verkaufe". :-)

Danke erstmal.

Gruß
Raller

khs-hh
19.02.2003, 10:19
Du könntest ja auch die RecordSource des Formulars per VBA-Code wechseln und so die Tabelle "freigeben".

Raller
19.02.2003, 10:23
Jou, das ist cool.
Das versuche ich gleich mal und werde dann eine Erfolgsmeldung geben ....

Gruß
Raller

Raller
19.02.2003, 11:12
Das klappt supergeil. Und ist recht elegant. Vielen Dank.
Gruß
Raller