Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

VBA für Steuerelement deaktiveren - Endlosformular

Begonnen von Micharius, November 06, 2017, 14:12:13

⏪ vorheriges - nächstes ⏩

Micharius

Hallo zusammen

Mit diesem Code kann ich wunderbar in einem "einzelnen Formular" einzelne Steuerelemente abhängig von Bedingungen aktiviert oder deaktiviert anzeigen lassen (Ereignis: Beim Anzeigen):

Private Sub Form_Current()
    Me!KunParIDRef.Enabled = Nz(Me!KunHatVertreter) = True 
    Me!btnParDosOeffnen.Enabled = Nz(Me!KunParIDRef) >= 1
End Sub


Er funktioniert jedoch nur im "einzelnen Formular" und nicht in einem Endlosformular. Weiss jemand, wie ich anpassen muss oder was ich machen könnte, damit ich das auch in einem Endlosformular hinkriege?

Herzliche Grüsse

Micharius

steffen0815

Hallo,
prinzipiell sollte das auch im Endlosformular funktionieren, allerdings werden die Bedingungen des aktuellen Datensatzes jeweils für alle Datensätze übernommen.

Für die einzelnen Datensätze kannst du aber mit "Bedingter Formatierung" arbeiten
Gruß Steffen

Micharius

Danke im Nachhinein für die Antwort. Habe jetzt einen "Fake Button" aus einem Textfeld gebastelt, bei bestimmten Werten wird dieses einfach in einem anderen grau formatiert und sieht so wie ein inaktiver Button aus. Das funktioniert recht gut. Es gibt zwar keinen "Mousover" Effekt, und effektiv lässt sich das Feld auch anklicken, wenn es "inaktiv" ist - aber optisch und funktionell passt das so.

MzKlMu

Hallo,
noch mal der Hinweis:
Der oben gezeigte Code mit Form_Current funktioniert völlig problemlos auch in einem Endlosformular.
Gruß Klaus

Micharius

Hi MzKlMu

Er funktioniert in dem Sinn schon, wie Steffen0815 aber korrekt geschrieben hat werden nur die Bedingungen des aktuellen Datensatzes jeweils für alle Datensätze übernommen. Das war in meinem Fall aber nicht gewünscht.

Beste Grüsse

Micharius

MzKlMu

Hallo,
dass das für alle Datensätze übernommen wird ist doch bedeutungslos. Sobald zu einem anderen DS gewechselt wird, wird ja wieder neu ausgewertet und die Eigenschaft gesetzt.

Oder liegt hier eine Mehrbenutzerumgebung vor und jeder hat das gleiche Formular ?
Gruß Klaus

steffen0815

Hallo,
wie beschrieben kannst du das alles über "Bedingte Formatierung" nicht nur korrekt, sondern auch schön darstellen.

@Klaus:
ZitatOder liegt hier eine Mehrbenutzerumgebung vor und jeder hat das gleiche Formular ?
Auch in diesem Fall hat jedes Formular seine eigene Instanz und es würde zu keinerlei Beeinflussung kommen.
Die Theorie "auf gar keinen Fall ein gemeinsames FE" ist nmM falsch. Man kann auch im Netzwerk nmE problemlos mit einem gemeinsamen FE arbeiten.
Gruß Steffen

MzKlMu

Hallo Steffen,
ZitatDie Theorie "auf gar keinen Fall ein gemeinsames FE" ist nmM falsch.
dann Lies mal das
Gruß Klaus

Micharius

...und ich komm bald gar nicht mehr draus  :'(

Vielleicht als Erklärung hier noch ein Dokument angehängt, welches die Ausgangssituation zeigt.
Links wählt der Benutzer einen Kunden an, im UF Endlosformular werden alle Projekte dieses Kunden angezeigt. Diese können entweder den Status aktiv oder inaktiv haben. Mit dem Button MUT sollen nru aktive Projekte mutiert werden können. Die Idee war nun, wenn der Status der Projekts "inaktiv" ist, den Button zu deaktivieren. Mit dem erwähnten Code ist dann immer nur der erste Datensatz bzw. das erste Projekt berücksichtigt. Im Beispiel ist nun der Button mittels Textfeld nachgebaut.

Bin mir sicher, es gäbe elegantere Lösungen, aber ich mit meinen bescheidenen VBA Kenntnissen...zumal ich den Code schon mal in einem anderen Formular verwendet habe dachte ich, das geht im gleichen. Mit der bedingten Formatierung bin ich eigentlich aber auch ganz happy.

Beste Grüsse

Micharius

steffen0815

@Klaus:
ich kenne deinen Link  :).
So wie der Kollege aus "seiner Sicht" darstellt, habe ich auch (nur) meine eigene Sicht und meine Erfahrung.
Ich habe jahrelang nur gemeinsame FE (mit sehr vielen Nutzern) eingesetzt und hatte nie Probleme.
Bei den neueren Versionen habe ich persönlich  umgestellt, allerdings haben wir auch noch zentrale FE-s im Einsatz.

Also man kann die/seine "Sicht" durchaus empfehlen, aber daraus einen Zwang abzuleiten halte ich für übertrieben bzw. falsch.
Gruß Steffen

MzKlMu

Hallo,
Zitathalte ich für übertrieben bzw. falsch
übertrieben lasse ich gelten, aber falsch ?

Für mich sind die Begründungen schlüssig. Ich denke das hängt auch von der Größe der Datenbank ab und von den Datenmengen die bewegt werden. So lange wie die Daten immer komplett in den Speicher geladen werden können, wird es keine Probleme geben.

Aber ich verfüge da über keine Erfahrungen und habe mich einfach mal an dem Beitrag im Link orientiert, welcher ja nicht von einem Laien kommt.
Gruß Klaus