MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 17.09.2003, 20:05   #1
#jensen
MOF User
MOF User
Hinweis Form schließen will nich...

Hi,

bekomm hier 'ne Macke mit Access. (A00)

Für meine Datenbank hab ich auch eine Suche realisiert, wobei das Ergebnis in 3 Formularen dargestellt wird. (Wegen 1:n Beziehung und so...)

Wenn 1 geschlossen wird, können die anderen natürlich auch zu. Nach ein paar Experimenten mit dem Unload-Ereignis hab ich die Schließ-Kreuze oben in der Ecke deaktiviert und jeweils Buttons eingefügt.

Per DoCmd.Close acForm ... sollen nun die anderen beiden Formulare und dann das Formular selbst geschlossen werden. Soweit die Planung.

In der Realität sieht es nämlich so aus, dass er auf die DoCmd-Zeilen überhaupt nicht reagiert. Ich stelle zwar fest, dass er die Unload-Funktion aufruft (die mittlerweile leer ist), aber das Formular dann dennoch offen bleibt.

Erst wenn ich genau diese Zeile ein zweites Mal aufrufe, schließt er das Formular erst. Als Workaround hab ich nun alle 3 Zeilen doppelt eingetragen, aber eine Lösung ist das für mich nicht wirklich...

Kennt jemand das Problem und weiß woran das Verhalten liegt?
Danke für Antworten!!

Gruß
Jens
#jensen ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.09.2003, 20:13   #2
Nouba
MOF Guru
MOF Guru
Standard

Hallo Jens,

setzte im Kode einen Haltenpunkt, wo Dein Schließkode greift. Dort angekommen, setze das Programm im Einzelschrittmodus mit F8 fort - irgendwo wirst Du bestimmt auf Merkwürdigkeiten stoßen. Danach könntest Du die Fragestellung mit dem betreffenden Kode konkretisieren.
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 07:58   #3
Kai W.
Neuer Benutzer
Neuer Benutzer
Nachricht

Schau mal bei donkarl nach.

Vielleicht hilft Dir das ja...

Gruß, Kai
Kai W. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 10:40   #4
#jensen
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hi,

danke erstmal für eure Antworten.
Im Einzelschritt bin ich schon durch. Man kann auch schön sehen, wie er für die Betreffende Form noch die Unload-Funktion aufruft. Aber sie bleibt dennoch offen... Grad als wenn Unload irgendwie scheitert. Aber selbst ein explizites Setzen von Cancel auf False bringt keine Abhilfe.

Beim zweiten Auruf von DoCmd.Close mit den selben Parametern passiert im Einzelschritt genau das selbe, nur das anschließend die Form auch wirklich geschlossen ist...

Ich hatte erst die Schließ-Befehle im Unload-Kontext der jeweiligen Form realisiert. Dass heißt, wenn eine Form geschlossen wird, schließt es die anderen gleich mit. Das war leider nicht ganz durchdacht, weil die Schließ-Befehle ja in jeder Form für die jeweils anderen auch drin standen.
Wenn nun Form1 geschlossen wird, versucht es Form2 und Form3 zu schließen. Dabei wird natürlich auch die Unload-Funktion von Form2 aufgerufen, wo drin steht, dass es Form1 schließen soll usw.
Da ziehen sie sich ja gegenseitig die Forms unterm Hintern weg. Na gut, das tut hier ja auch nix zur Sache.

Die Funktion zum Prüfen, ob so ein Formular offen ist, könnte sicher auch ganz nützlich sein. Mal schauen, was sich da bauen lässt.

Wenn sonst noch jemand weiß, was hier los ist, würd ich mich über Antwort freuen. Danke!

Gruß
Jens
#jensen ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 10:46   #5
MarkusS
MOF Profi
MOF Profi
Standard

Kann es sein, dass von dem Form eine Instanz unsichtbar geöffnet ist?

__________________

Gruß Markus


Der Computer hilft uns Probleme zu lösen, die wir ohne ihn nicht hätten!
Win2000/NT4.0/XP;O2K(Prof.+Dev.)/OXPDev./O97Prof./MS Visual Studio 6 Enterprise !
MarkusS ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 11:06   #6
#jensen
Threadstarter Threadstarter
MOF User
MOF User
Standard

Wie geht das? Bzw. wie finde ich das heraus?

Heißt das bei 2 DoCmd.OpenForm-Aufrufen für ein Formular sind anschließend 2 Instanzen offen sind?
Das wäre natürlich eine Erklärung für das Verhalten.

Das es dort Instanziierungen gibt war mir bisher nicht bekannt. Ich dachte immer eine Form kann nur offen oder geschlossen sein...

Gruß
Jens
#jensen ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 11:11   #7
MarkusS
MOF Profi
MOF Profi
Standard

Du kannst von einem Form beliebig viele Instanzen mit DoCmd.OpenForm öffnen und dann auf Visible = False setzen.
Vielleicht Debug'st Du mal schrittweise durch die Anwendung um zu sehen, was da alles passiert.

__________________

Gruß Markus


Der Computer hilft uns Probleme zu lösen, die wir ohne ihn nicht hätten!
Win2000/NT4.0/XP;O2K(Prof.+Dev.)/OXPDev./O97Prof./MS Visual Studio 6 Enterprise !
MarkusS ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 11:14   #8
StehtimSchilf
MOF Profi
MOF Profi
Standard

Hallo Jensen,

weiss jetz nicht ob das stimmt, aber könnte es nicht sein, dass Du noch einen nicht abgeschlossenen Fehler-Behandler am laufen hast mit 'ON ERROR RESUME NEXT' ?

Es passiert doch oft, dass man Daten in ein form eingibt, dann aber Access schliesst, der Datensatz nicht korrekt ausgefüllt wurde dann kommt doch die Fehlermeldung 'Sie können das Objekt momentan nicht spiechern' oder so was....

Oder evtl.
ein DoCmd.SetWarnings FALSE?

Ist nur ne Idee....

__________________

Win, Off, SQL-Server - alles MS 2000
StehtimSchilf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.09.2003, 11:43   #9
#jensen
Threadstarter Threadstarter
MOF User
MOF User
Tipp

Danke auch an StehtimSchilf für den Hinweis, aber es sind die guten Instanzen.

Hab ein Dreher im Code entdeckt. Hab mir da nix weiter bei gedacht, weil es funktioniert hat.
Und zwar erstelle ich im Code eine SQL-Abfrage, die ich dann auf die Formulare anwende. Der Knackpunkt ist allerdings, dass ich erst den String an die RecordSource-Eigenschaft der Form übergebe und sie dann öffne mit DoCmd...

In dem Moment wo also der String an die Form übergeben wird, wird eine Instanz der Form erzeugt!! Der anschließend Aufruf von DoCmd.Open... erzeugt natürlich wie von Markus beschrieben eine weitere Instanz und sorgt dafür, dass anschließend auch wieder 2 Instanzen geschlossen werden müssen.

Ich öffne also nun erst die Form mit DoCmd und weise dann den String zu.
Vielen Dank für eure Hilfe!!!

Gruß
Jens
#jensen ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.