Hallo zusammen,
ich habe 2 Formulare. Eines das alle Bauteile anzeigt als Endlosformular (HF1) und eins das alle Bauteilinfos anzeigt als einzelnes Formular (HF2). Nun habe ich eine Schaltfläche im HF1, die bei Betätigung zum jeweiligen Bauteil navigieren soll. Bei erstmaliger Betätigung sind jedoch alle Felder des HF2 leer, obwohl der Filter als angewendet angezeigt wird. Wenn ich nun oben den Reiter HF1 klicke und die Schaltfläche erneut betätige, sind nun alle gefilterten Infos zum geklickten Bauteil in HF2 zu sehen. Ab diesem Zeitpunkt funktioniert das saubere Erscheinen beim Klicken der Schaltfläche wenn ich den Reiter oben manuell zurückwechsle. Wenn ich nun allerdings eine "Zurück"- Schaltfläche einbaue, führt diese mich zwar zurück, jedoch dann bei erneutem Versuch zum gewünschten Bauteil zu navigieren, ist HF wieder "leer". Ich füge mal die Ansichten und VBA Codes an: Bauteile(HF1).pngCodeSchaltflächezumBauteil.pngCodeSchaltflächezurück.pngHF2 voll.pngHF2leer.png
Hallo Stoppi12,
tolle Grafiken, aber vollkommen unbrauchbar. Mache eine kleine Beispiel-DB mit ein paar DS fertig und lade die DB hier hoch. Damit kann man mehr anfangen.
Im Übrigen sollte eigentlich im Dialogformular kein Filter notwendig sein, sondern es wird eine WhereCondition verwendet - Filter ist etwas anderes.
Gruß
Knobbi38
Hallo,
wobei in der gezeigten Form (3 Kommas nach dem Formularnamen in DoCmd.OpenForm) eine Where-Condition verwendet wird und kein Filter - also richtig. Bei Zweien wäre es Filter.
Meine Empfehlung: Statt der Kommaorgie benannte Parameter verwenden, dann muß man nicht raten:
DoCmd.OpenForm FormName:= "x", WhereCondition:="xxx"
Ohne Deine Formulare und Deinen Code kann man aber nicht wirklich sehen, wo das Problem liegen könnte, generell ist diese OpenForm-Anweisung so korrekt. Verwende "Me.txtBauteileID", dann kann der Compiler auch feststellen, ob es das Feld wirklich gibt und einen Fehler anzeigen, wenn nicht, mit "!" kann er das nicht.
Statt ständig zwischen Endlos- und Detailformular umzuschalten, einfach ein UFo mit den Details in den Fußbereich stellen und nach der (falschen) Fehlermeldung von Access das HFo wieder auf Endlos zurückstellen, dann brauchst Du nur eine Zeile anzuklicken und hast die Details im Fußbereich.
Generell: Ich werde wohl nie verstehen, warum es in den letzten Jahren "modern" geworden ist, Riiiiiiesenplatzverschwendung im Formular einzubauen. In Deinem Endlosformular werden gerade mal knapp 10 Zeilen angezeigt, mit unglaublich viel unnützen Leerraum, warum?
Wenn Du das mal kleiner machst (und mit der vorgeschlagenen Änderung kannst Du auch den Button und den Code entfernen), dann kannst Du locker 30 Zeilen auf einer Seite anzeigen. Weit mehr Informationen. Und statt in jeder Zeile einen Button anzuzeigen - einfach einen Button im Header etwa, erfüllt den gleichen Zweck und spart viel Platz.
Oder das Detailfenster: Warum werden Controls nicht ordentlich ausgerichtet, in der Größe angepaßt usw.? Immerhin bietet Access sogar Layouts seit A2007 an, mit denen das sogar vollautomatisch geht.
Objektnamen: Auch nach 20 Jahren Access werden immer noch Objekte mit Leerzeichen und Umlauten benannt. Wann liest mal jemand, daß man Objektnamen so nicht erzeugt? Ich denke, all das sehen wir auch noch in weiteren 20 Jahren...
Gruß
Christian