Hallo Dave,
zuerst einmal musst Du an das Listenfeld ran:
Code: Alles auswählen
SUB Ausblenden(oEvent AS OBJECT)
oListField = oEvent.Source.Model
oForm = oListField.Parent
stListValue = oListField.CurrentValue
END SUB
Das Makro wird an das Listenfeld gebunden. Die Änderung des Inhaltes soll das Makro auslösen. Über das auslösende Element ermittelst Du das Listenfeld und das Formular, in dem das Listenfeld und (hoffentlich) Deine Textfelder liegen. Den Wert des Listenfeldes liest Du mit CurrentValue aus. Achtung: Hier verhalten sich LO und AOO unterschiedlich. Während LO den Wert ausliest, der an die Datenbank weitergegeben wird, liest AOO den Wert der Anzeige aus. Siehe hierzu das Handbuch Base.
Jetzt gibt es verschiedene Möglichkeiten, die Felder, die ein- bzw. ausgeblendet werden sollen, zu kennzeichnen. Du kannst die Namen der Felder in Arrays innerhalb eines Makros zusammenfassen und dann über eine Schleife die Felder mit EnableVisible = True kennzeichnen, die in einem Array stecken und die mit EnableVisible = False die, die in einem zweiten Array stecken. Welche dieser Arrays genutzt werden machst Du über die Auswahl des Wertes des Listenfeldes klar.
Wenn Du so etwas nicht hart in dem Makro eingeben willst, so bietet sich bei den Feldern die Eigenschaft "Tag" an: oField.Tag speichert die Zusatzinformationen. Du könntest also in die Zusatzinformationen des Listenfeldes die Felder gruppiert mit Namen eintragen, die bei einer bestimmten Auswahl angezeigt werden sollen. Daraus machst Du später im Makro Arrays. Oder Du könntest die Felder kennzeichnen, die bei bestimmten Auswahlen angezeigt werden sollen. Dann werden alle Felder durchsucht und nur die angezeigt, die in den Zusatzinformationen einen entsprechenden Vermerk anzeigen.
Du musst natürlich wissen, wie Du das jeweils in Arrays übertragen kannst oder Schleifen ablaufen lassen kannst. Schau Dir dazu einfach einmal im Handbuch im Makrokapitel die "Eingabekontrolle bei Formularen" an. Da werden je nach Auswahl Felder als notwendig gekennzeichnet - ist im Prinzip ein ähnliches Vorgehen.
Also: Es geht auch mit vielen Feldern, aber Du brauchst etwas Makrowissen. Versuche es erst einmal mit dem Handbuch und melde Dich dann wieder.
Gruß
Robert