ich hab eine Access-Tabelle (Kunden) mit 1:n verknüpfter Untertabelle (Geräte). Ich möchte aus dem Formular der Haupttabelle per Befehlsschaltfläche ein EIGENES Formular der Untertabelle bedingt (d.h. gefiltert für die aktuelle KdNR) öffnen und zum Anlegen neuer Datensätze sortieren. Die KdNr soll in der Untertabelle wenn überhaupt inaktiv erscheinen, damit sie vom User nicht falsch belegt werden kann. Alles also genauso, wie wenn Access ein Unterformular bedingt öffnet, außer dass es sich a) um ein eigenes Formular handelt und b) die Darstellung engspaltig und nicht tabellarisch erfolgen soll und das deshalb c) zum Anlegen neuer Datensätze absteigend sortiert werden sollt.
Ich hab versucht das in VBA über Filter oder Sortierungen zu regeln, aber wenn ich das Feld KdNr im Formular der Untertabelle inaktiv stelle gehen die Filter oder Sortierung (die bei aktivem Feld funktioniert haben) hops und die Datensätze werden unsortiert und ungefiltert dargestellt. Ich hab mir auch mit einer sortierten Abfrage zu helfen versucht, aber auch kein Erfolg.
Wie kann ich die Bedingung für getrennte Formulare realisieren, die Access beim Öffnen von Unterformularen so entspannt durchführt?
Wenn Du ein separates Form öffnen und das genau so wie ein in einem HF befindlichen UFO verwenden willst, dann mußt Du dafür Sorge tragen, daß beim Öffnen eine Where-Condition (…Openform…, „KdNR=“ & ME!KdNR ) mit übergeben wird und der Fremdschlüsselfeld-Defaultwert mit dem KDNR-Wert besetzt wird (z. B. im Load-Ereignis und mittels Übergabe per Openargs). Dabei kann das KDNR-Textfeld durchaus auf unsichbar oder auf gesperrt gesetzt sein.
Das geöffnete Formular ist jetzt auf die aktuelle liKdNr gefiltert, obwohl das Feld inaktiv ist. So weit, so gut. Besitzt der Kunde aber schon Geräte, erscheint in frmGeraeteNeu als erster Datensatz das älteste und nicht das neue. Wenn ich das zu sortieren versuche, schlägt wieder das alte Problem mit dem inaktiven Feld zu.
Ich tippe mal, das der Hase bei den openargs im Pfeffer liegt, das meine ganze Recorset-Fummelei mit den richtigen openargs obsolet ist und das sich so auch der sequenzielle Eintrag mehrerer neuer Geräte für den aktuellen Kunde realisieren lassen, aber ich hab auch nach der Lektüre der Windows-Hilfe keine Ahnung wie das zu formulieren ist und wäre daher dankbar für weitere Hilfe.
jaja, ich weiss schon, meine Access- und VBA-Kenntniss sind grausam. Ich versuch gar nicht mich zu rechtfertigen und sag einfach: prima, danke, so geht’s (und ich hab wieder mal was gelernt).
LG
Benjamin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]