Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: pampel am März 15, 2017, 17:56:19

Titel: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 17:56:19
Hallo zusammen,

in einem Formular kann für jeden DS bestimmt werden, ob der DS gedruckt oder für eine Nachfrage per E-Mail an den entsprechenden Kollegen verschickt werden soll. Beides klappt.

Bei den Kollegen, die nicht mehr aktiv sind, soll nun der E-Mail-Butten bei den entsprechenden DS ausgeblendet werden:
Kollege aktiv -> Email-Button erscheint
Kollege nicht mehr aktiv - Email-Button wird nicht dargestellt.

"aktiv" ist ein Ja-/Nein-Feld in der Kollegen-Tabelle.

Mein Versuch mit
Me!btnMail2.Visible = Me!kkAktiv.Value
klappt nicht. Wenn ich das Kontrollkästchen auf nicht sichtbar stelle, erscheint keiner der E-Mail-Buttons.

Wenn das Kontrollkästchen sichtbar ist wird es kurios. Zur Beschreibung: ich habe zwei DS, einer mit aktiv = Ja und einer mit akitiv = Nein.

Klicke ich mit der Maus in einen beliebigen Bereich des DS mit aktiv = Ja, dann erscheint auch der E-Mail-Button in dem DS, wo aktiv = Nein eingestellt ist.
Klicke ich mit der Maus in einen beliebigen Bereich des DS mit aktiv = Nein, dann verschwindet auch der E-Mail-Button in dem DS, wo aktiv = Ja eingestellt ist.

Was ich möchte: hat der Kollege des entsprechenden DS den Wert aktiv = Ja, dann soll der E-Mail-Button erscheinen, hat er den Wert aktiv = Nein soll der E-Mail-Button nicht erscheinen. Klicke in einem beliebigen anderen DS, so soll sich an der Sichtbarkeit der E-Mail-Buttons nichts ändern.

Wie bekomme ich dan hin?

Danke für Hinweise,


Gruß,

Stefan
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 15, 2017, 18:02:34
Hallo,
wenn das ein Endlosformular ist, geht das nicht.
Daher die Frage, wo wird das eingesetzt ?

Ich verstehe auch nicht, warum man nicht gleich die ganze Prozedur zeigt (mit Codetags) statt des Einzeilers. Da könnte man sich manche Rückfrage sparen.

Also zeige bitte den Code vollständig und erkläre das ausführlicher.

Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 19:18:50
Hallo,

Danke!!!

>> wenn das ein Endlosformular ist, geht das nicht.
>> Daher die Frage, wo wird das eingesetzt ?

In einem Endlosformular - also geht's nicht.

>> Ich verstehe auch nicht, warum man nicht gleich die
>> ganze Prozedur zeigt (mit Codetags) statt des Einzeilers.

Weil genau das mein Problem ist - alles andere geht ja!!!
Zitat
>> Da könnte man sich manche Rückfrage sparen.
>> Also zeige bitte den Code vollständig ...
Me!btnMail2.Visible = Me!kkAktiv.Value

Zitat>> ... und erkläre das ausführlicher.
in einem Formular kann für jeden DS bestimmt werden, ob der DS gedruckt oder für eine Nachfrage per E-Mail an den entsprechenden Kollegen verschickt werden soll. Beides klappt.

Bei den Kollegen, die nicht mehr aktiv sind, soll nun der E-Mail-Butten bei den entsprechenden DS ausgeblendet werden:
Kollege aktiv -> Email-Button erscheint
Kollege nicht mehr aktiv - Email-Button wird nicht dargestellt.

"aktiv" ist ein Ja-/Nein-Feld in der Kollegen-Tabelle.

Mein Versuch mit
Me!btnMail2.Visible = Me!kkAktiv.Value
klappt nicht. Wenn ich das Kontrollkästchen auf nicht sichtbar stelle, erscheint keiner der E-Mail-Buttons.

Wenn das Kontrollkästchen sichtbar ist wird es kurios. Zur Beschreibung: ich habe zwei DS, einer mit aktiv = Ja und einer mit akitiv = Nein.

Klicke ich mit der Maus in einen beliebigen Bereich des DS mit aktiv = Ja, dann erscheint auch der E-Mail-Button in dem DS, wo aktiv = Nein eingestellt ist.
Klicke ich mit der Maus in einen beliebigen Bereich des DS mit aktiv = Nein, dann verschwindet auch der E-Mail-Button in dem DS, wo aktiv = Ja eingestellt ist.

Was ich möchte: hat der Kollege des entsprechenden DS den Wert aktiv = Ja, dann soll der E-Mail-Button erscheinen, hat er den Wert aktiv = Nein soll der E-Mail-Button nicht erscheinen. Klicke in einem beliebigen anderen DS, so soll sich an der Sichtbarkeit der E-Mail-Buttons nichts ändern.

Wie bekomme ich das hin?

Danke für Hinweise,


Gruß,

Stefan

Ausführlich genug?
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 15, 2017, 19:31:34
Hallo,
in einem Endlosformular ist das nicht möglich, entweder alle oder keiner. In einem Endlosformular sind die Steuerelemente nur 1x vorhanden, die werden nur mehrfach dargestellt. Daher ist eine datensatzbezogene Darstellung nicht möglich. Du hast ja nur einen Bezug (Namen) für den Button.
Du könntest ein Feld anlegen, das wie ein Button formatiert wird und dieses per bedingter Formatierung (Menübefehl) deaktivieren. Unsichtbar geht hier aber auch nicht. Das ist aber eine Krücke, weil der Mauszeiger zum Cursor (|)  wird.
PS:
Zum zitieren verwendet man den Zitate Button. Ich habe es in Deinem Beitrag mal ergänzt.
ZitatAusführlich genug?
Nein, das wesentliche hast Du unterschlagen, nämlich das Ereignis in dem der Code aufgerufen wird. Also mit dem Prozedurkopf und Fuß. Daher ja meine Bitte den Code vollständig zu zeigen. Hat sich aber erledigt, es geht ja nicht.
Neues hast Du jetzt aber auch nicht weiter geschrieben.
Außerdem verwendet man für Code die Codetags des Forums.
Me!btnMail2.Visible = Me!kkAktiv
Auf Value kann verzichtet werden.
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 19:42:44
Auf Value kann verzichtet werden.
Danke  :) :) :)
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 19:45:28
oohhhh - V-e-r-g-e-s-s-e-n-!!!!  :o :o :o
Gruß Klaus

Grüselchen,

Stefan
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 19:55:29
... das wesentliche hast Du unterschlagen ...
das mit dem Code macht richtig Spaß. Und wenn man so nett darauf hingewiesen wird, dann macht das Verwenden auch noch so einen Spaß, gell!!

... das wesentliche hast Du unterschlagen ...
bis jetzt. Denn: - ich hab's hinbekommen - ganz alleine - ich bin so stolz auf mich.

Grüselchen,

Stefan
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 19:57:11
ich hab's hinbekommen
schschschiiick!!!

Bin aber zu müde, um ausführliche Anleitungen zu schreiben.

Stefff...
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 15, 2017, 20:03:03
Hallo,
wenn schon, dann solltest Du auch die richtigen Tags verwenden. Code für Code und Zitat für Zitate.

Zitatich hab's hinbekommen
Wenn man in einem Forum nach Lösungen fragt, so gehört es zum guten Ton, dass man auch seine eigenen Lösungen zeigt. Es sollen ja alle etwas davon haben.
Wenn Du ausgeschlafen hast  :D, so solltest Du bitte Deine Lösung hier zeigen.
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 15, 2017, 23:52:20
hab' ich doch tatsächlich
Zitatquote
und
code
verwechselt und dann auch noch (mir zittert die Kugel meiner
Zitatgeliebten
analogen Maus)

an einen
ZitatModerator
und
ZitatAccess-Oberguru
geraten. Wie
Zitatpeinlich
ist das denn???

Ach ja; die Lösung:
... WHERE (tabKollegen.aktiv=True).

Ein
ZitatModerator
und
ZitatAccess-Oberguru
wird wissen, was das bedeutet.

Gute Nacht
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MaggieMay am März 16, 2017, 00:09:54
@pampel:
Du findest das vermutlich witzig, oder?

Ich finde nur, du machst deinem selbst gewählten Namen mal wieder alle Ehre...
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 16, 2017, 09:28:09
@Stefan
Warum ziehst Du meine Bemühungen Dir zu helfen ins lächerliche ?
Es ist durchaus sinnvoll, auf die richtige Verwendung der Tags hinzuweisen.
Es macht den Beitrag leserlicher und beim Code kann es bei normalem Text zu Verfälschungen kommen, weil bestimmte Zeichen als Smilies interpretiert werden.
Aber egal, der Mitleser wird ohnehin erkennen, wer sich lächerlich gemacht hat.

Zur Sache:
Die gezeigte Where Klausel hat mit dem Ausblenden eine Schaltfläche nicht das geringste zu tun. Das ist einfach ein Ausfiltern der Inaktiven Datensätze.
Und das wäre dann SQL und kein VBA.
Und kürzer geht es auch noch:
... WHERE aktiv=True
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 16, 2017, 12:00:01
Hallo Maggie May,

@pampel: Du findest das vermutlich witzig, oder?
Nein.  ::)

Ich finde nur, du machst deinem selbst gewählten Namen
Zitatmal wieder
alle Ehre...

Ach ja?!?

Stefan
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: pampel am März 16, 2017, 12:13:14
Hallo,

ZitatWarum ziehst Du meine Bemühungen Dir zu helfen ins lächerliche ?
Das kann man so sehen.

ZitatEs ist durchaus sinnvoll, auf die richtige Verwendung der Tags hinzuweisen. Es macht den Beitrag leserlicher und beim Code kann es bei normalem Text zu Verfälschungen kommen, weil bestimmte Zeichen als Smilies interpretiert werden.
Geb' ich Dir recht.

ZitatAber egal, der Mitleser wird ohnehin erkennen, wer sich lächerlich gemacht hat.
Yep.

ZitatZur Sache: Die gezeigte Where Klausel hat mit dem Ausblenden eine Schaltfläche nicht das geringste zu tun.
Doch - weil's mein Problem gelöst hat!!!

ZitatDas ist einfach ein Ausfiltern der Inaktiven Datensätze. Und das wäre dann SQL und kein VBA.
Das sehe ich auch so.

ZitatUnd kürzer geht es auch noch:
... WHERE aktiv=True
NNeinn - weil ich einer anderen Tabelle auch noch ein "aktiv"-Feld habe.

Gruß,

Stefan
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 16, 2017, 13:22:50
Hallo,
ZitatNNeinn - weil ich einer anderen Tabelle auch noch ein "aktiv"-Feld habe.
In einer Datenbank ist es mMn vorteilhaft, wenn es keine Felder mit gleichem Namen gibt. Das vereinfacht vieles. Man erspart sich viel Tipparbeit.
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: Lachtaube am März 16, 2017, 13:52:50
Zitat von: MzKlMu am März 16, 2017, 13:22:50
In einer Datenbank sollte es keine Felder mit gleichem Namen geben.
Klaus, diese Aussage solltest Du aber als deine persönliche Präferenz im Umgang mit Access-Datenbanken hervorheben - denn ich wüßte nicht, wo man sonst diese Empfehlung nachlesen kann. :)
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: MzKlMu am März 16, 2017, 15:06:44
@Lachtaube
Ich bin Deinem Wunsch nachgekommen. Eine Begründung für meinen Hinweis hatte ich ja geschrieben.

Nachfrage: Was spricht aus Deiner Sicht gegen eine solche Empfehlung ?
Wenn es keine doppelten Namen gibt, kann man auf den Bezug zur Tabelle verzichten was Abfragen deutlich kürzer und damit übersichtlicher machen kann.
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: PhilS am März 16, 2017, 15:29:26
Zitat[Eindeutige Feldnamen]
Was spricht aus Deiner Sicht gegen eine solche Empfehlung ?
Ich schreibe den Bezug auf die Tabelle (als Alias) immer und für jedes Feld, wenn eine Abfrage mehr als eine Tabelle verwendet. Damit ist immer auf den ersten Blick klar, woher welches Feld kommt.
Das finde ich für den Gesamtkontext wesentlich übersichtlicher, als ein paar Zeichen pro Feld einzusparen.

Darüber hinaus, wenn es mehrere Tabellen gibt, in denen das gleiche primäre Feld referenziert wird, wie setzt du es dort um, dass du immer verschiedene Feldnamen verwendest und trotzdem klar ist, welches Feld dort referenziert wird?
Manchmal ergibt sich das sinnvoll aus dem Kontext, aber oft auch nicht.
Titel: Re: Bedingtes Darstellen einer Schaltfläche
Beitrag von: datekk am März 23, 2017, 08:17:21
@Lachtaube: Gleiche Spaltenbezeichnungen sind tatsächlich ein Problem - nur macht es einem Access nur nicht so deutlich. Wechselt man zu SQL Datenbanken und erstellt eine Abfrage mit Tabellen, die gleiche Spaltennamen haben, muss zwingend ein Synonym/Alias vergeben werden. Von Daher ist der Rat schon korrekt und auch in Access bleibt die Datenbank damit übersichtlicher. Spaltennamen sollten ein Präfix verwenden, der den Tabellennamen verwendet. Zb. tblPersonen: PersId; PersNachname; PersVorname usw.

Ich habe hier neulich mal irgendwo einen Link gesehen, der wunderbar Tips gegeben hat, wie Datenbankelemente benamst werden sollen. Ich kann nur empfehlen, sich daran zu halten.

@pampel: Werden in dem Formular auch Eintragungen gemacht oder wird nur entschieden drucken oder Mail senden? Ich frage deshalb, weil wenn Du keine Eintragungen oder Datensatzänderungen in dem von Dir genannten Endlosformular vornimmst, könntest Du auf einen Bericht wechseln. Dieser erlaubt es pro Datensatz Felder ein- oder auszublenden. Wenn allerdings Eingaben gemacht werden müssen, ist das mit dem Bericht hinfällig.