PDA

Vollständige Version anzeigen : Formular mit Unterformularen


tsw
28.09.2005, 08:02
Hallo zusammen,
ich habe ein Problem mit einem Unterformular und die Suche im Forum bzw. im Internet hat mich bis jetzt noch nicht zum Erfolg geführt.

Folgender Sachverhalt :
- Formular mit 2 Unterformularen
- Hauptformular : frm-0
- UFO1 : ufo_1 ( Endlosformular )
- UFO2 : ufo_1_1 ( Endlosformular ) / eigentliches Unterformular von UFO1

Ziel :
- Anzeige der Daten in UFO2 als Funktion der Auswahl in UFO1
- [ausblenden UFO2 wenn keine Daten enthalten sind ]

Problem :
- der Zugriff auf die Daten von UFO2 beim Öffnen von UFO1 erzeugt einen Fehler, da das UFO2 anscheinend noch nicht offen ist

aber seht selbst : Anhang TEST-UFO.ZIP

Vielleicht hat jemand das Problem schon gelöst.

Noch eine Bemerkung :

Das Forum hat mir schon sehr viel geholfen und ich finde es wirklich toll, das es diese Möglichkeit gibt.
Schön ist es, wenn man bei den Lösungen eine Bespieldatenbank zum download angeboten bekommt, um den Sachverhalt nachvollziehen zu können ohne erst die Tabellenstruktur nachempfinden zu müssen.

Gruss tsw

rita2008
28.09.2005, 08:19
Hallo,

wenn Du den Else-Zweig im Form_Current des UFO1_1 abarbeitest, geht es zumindest ohne Laufzeitfehler. Ob Du inhaltlich das erreichst, was Du möchtest, kann ich nicht einschätzen.

mfg Rita

tsw
28.09.2005, 09:26
Hallo Rita,
eigentlich funktioniert alles so wie es soll, nur beim Öffnen des Formulars erscheint der Fehler. Ist es vielleicht möglich, das UFO_1_1 erst zu öffnen und dann auf die Daten zuzugreifen ?
Oder wäre ein anderes Ereignis als BeimAnzeige sinnvoller ?

Gruss TSW

tsw
29.09.2005, 20:49
Für alle, die ein ähnliches Problem haben, hier meine Lösung:

Durch ein Kontrollfeld, das beim Öffnen des Formulares auf false gesetzt wird,
wird die Routine zum ausblenden des UFO´s ( wenn keine Datensätze vorhanden sind ) abgeblockt. Durch den Timer des Formulares lasse ich nach einer bestimmten Zeit das Kontrollfeld auf true setzen und damit wird die komplette Routine ausgeführt. ( Das Kontrollfeld habe ich sichtbar gelassen und die Zeit mit 1000 ms lang gewählt, so das man sehen kann, wie es funktioniert )
Für alle die es interessiert, hier die aktuelleTest-DB.

m.f.G.
TSW

Anne Berg
29.09.2005, 21:57
Ich habe mir dein erstes Beispiel mal angesehen. Was du da machst ist "unsauber": Access unterstützt die Verknüpfung, die du da für UFO_1_1 eingestellt hast, nicht und Ufo_1_1 ist, wie du ja selbst sagst, "eigentlich" ein Unterformular von Ufo_1.
Wenn du das so eingerichtet hättest, hättest du auch das Problem nicht gehabt, weil Unterformulare zuerst geladen werden: also Ufo_1_1 vor Ufo_1 vor HF. - Aber ein Endlos-Form kann ja leider kein Ufo haben... :(

Wenn es aber ansonsten so funktioniert, hätte ich den Fehler beim Laden wohl eher ignoriert als ihn mit Timer und sonstigen Tricks zu umgehen. ;)

tsw
29.09.2005, 22:10
Soweit ich mich erinnern kann, habe ich mir das in der Nordwind-DB abgeschaut.
Wie wäre den den eine saubere Programmierung ?

Gruss TSW

Anne Berg
29.09.2005, 22:30
Ich wäre vorsichtig, etwas einzusetzen was Access nicht wirklich unterstützt. Gehe doch mal im Entwurf des zweiten Ufo-Steuerelements auf die Verknüpfungseigenschaften und versuche, sie zu ändern oder neu einzustellen. Dann sagt dir Access, dass das nicht geht und löscht die Einstellung.

Ich glaube aber, dass du das dort sowieso nicht brauchst, da du die Datenherkunft des Ufo_1_1 so eingestellt hast, dass es von Ufo_1 abhängig ist, oder nicht?

tsw
29.09.2005, 22:48
Die letzte Aussage kann ich jetzt leider nicht interpretieren. Ich muß doch dem Unterformular irgendwie sagen, was mit wem in Beziehung steht, oder ?

ACCESS unterstützt doch die Verwendung von Unterformularen in Endlosformularen nicht, wie kann ich dann so eine von mir gewünschte Darstellungsweise realisieren ?

Gruss TSW

Anne Berg
29.09.2005, 23:09
Dazu kann ich jetzt nur sagen: lies meine Antwort noch einmal (2x, 3x, ... ;)) durch und probiere aus, was ich da beschrieben habe und teste aus was passiert, wenn die vermeintliche Verknüpfung weg ist...

Es ist doch alles soweit in Ordnung! Du brauchst weder diese (nicht unterstützte) Verknüpfung der Formulare noch die Fehlervermeidung. In wohl überlegten Einzelfällen ist "On Error Resume Next" durchaus zulässig! ;)

tsw
29.09.2005, 23:26
Also, wenn ich die Verknüpfung weglasse, dann sehe ich in UFO_1_1 alle Datensätze.
UFO_1 basiert auf Tabelle1 und UFO_1_1 auf Tabelle2. Wie soll UFO_1_1 die richtigen Datensätze der Tabelle2 finden, wenn nicht bekannt ist, welcher Datensatz im UFO_1 gewählt wurde und der entsprechenden ID-Wert an UFO_1_1 weitergericht wird ?

Gruss TSW

Anne Berg
29.09.2005, 23:40
Ja, da hast du Recht. Aber du könntest doch die Datenherkunft von Ufo_1_1 so einstellen (mit Hilfe einer Abfrage) dass die "richtigen" Daten (abh. von der Auswahl in Ufo_1) angezeigt werden.

Ich muss zugeben, dass ich das auch schon einmal so gemacht habe mit der "unzulässigen" Verknüpfung, die ja witzigerweise durchaus funktioniert (!), aber ich habe doch ziemliche Bedenken dabei, was die Zuverlässigkeit und Stabilität einer solchen Konstruktion betrifft. :(

Wäre mal interessant zu erfahren, was genau dahinter steckt - ms-seitig...

tsw
07.10.2005, 07:01
Hallo Forianer,
ich habe mein Formular mit Unterformular nochmal überarbeitet und jetzt hoffentlich eine saubere Lösung hinbekommen, die vielleicht als Anregung für alle die mit Unterformularen arbeiten als Anregung dienen kann.

Gruss TSW