2017-07-12 3 views
0

Ich habe ein Formular mit mehreren Text- und Kombinationsfeldern, die an Datensätze einer Tabelle gebunden sind, die wir "Foo" nennen.Zugriff - Formularfelder permanent unterbrochen nach Recordset.close

"Foo" ist eine gefilterte Kopie einer größeren Tabelle "Bar". Dies wurde getan, um reversible Änderungen an Foo zu ermöglichen, die wieder in Bar zusammengeführt werden würden, wenn der Benutzer die Bearbeitung beendet hatte. Meine Implementierung des Zurücksetzens eines bestimmten Datensatzes zurück in Bars Kopie funktionierte, verursachte aber Run-time error '3197', wenn das Re-Cord-Set zu einem späteren Zeitpunkt geändert wurde .

Als Workaround dachte ich daran, das Recordset meines Formulars zu schließen, meine Abfrage auszuführen und sie dann wieder zu öffnen, so dass es keine Kämpfe über die Nutzung geben würde. Ich habe Me.recordset.close vor der revert Abfrage ausgeführt wird, aber dies verursachte die gebundenen Felder in meiner Form dauerhaft zu brechen:

enter image description here

Dies bleibt auch dann, wenn die Form geschlossen wird, und auch beim Schließen Access. Das Listenfeld in dem Formular, das die Tabellendaten anzeigt, funktioniert ebenso gut wie das Feld primaryID und die Abfrage, so dass ich das Problem nicht verstehe. Dieses Ereignis wird durch einen Tastendruck ausgelöst. Warum wird das Re-Cord-Set also nicht wiederhergestellt, wenn das Formular erneut geladen wird?

Wie kann ich das beheben, ohne zu einer früheren Version der Access-Datei zurückzukehren?

+0

Sie machen es _way_ zu kompliziert. Suchen Sie nach einem Lernprogramm: "Mit Microsoft Access beginnen" oder ähnlich, und sehen Sie sich die Grundlagen an: Filtern eines gebundenen Formulars. – Gustav

+1

Beginnen Sie mit der Dekompilierung der Datenbank: https://stackoverflow.com/documentation/ms-access/8207/how-to-troubleshoot-access-crashes/26371/decompile-database#t=20170712201408237706 –

Antwort

0

Dies löste das Problem, gibt mir aber keinen Einblick.

Unter Form Design Tools > Design > Tools > Add Existing Fields Ich zog und legte eine zweite Kopie jedes der Problemfelder auf das Formular, dann löschte es sofort. Wenn das Formular neu geladen wurde, funktionierte alles ordnungsgemäß.