Neuigkeiten:

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

Mobiles Hauptmenü

Verdeckte Eingabe in MsgBox

Begonnen von Tally, Mai 02, 2014, 13:49:02

⏪ vorheriges - nächstes ⏩

Tally

Hallo zusammen

Ich möchte, dass die Eingabe, welche ich in eine MsgBox auf Grund einer Abfrage erfasse, nicht mit dem effektiven Text sondern mit *** dargestellt wird wie bei einer "normalen" Passwort-Eingabe. Wie kann man dies anstellen?
Vielen Dank für Eure Unterstützung; Gruss René

DF6GL

Hallo,

mit einer MsgBox kannst Du Text nur darstellen (ausgeben) , nichts erfassen...

Vielleicht meinst Du aber auch ein Parameterfenster, das irgendwelche Parameter- oder Feldwerte  vor dem Ausführen einer Abfrage einfordert.   In einem solchen P-Fenster sind keine Eingabe- oder Ausgabeformate verwendbar.



Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Tally

Hallo Franz
Sorry, ich will nichts erfassen. Ich habe eine Auswahlabfrage: geben Sie den gewünschten Namen ein.... und dort möchte ich bei der Eingabe statt Müller ****** sehen. Gruss René

MzKlMu

Hallo,
das Parameterfenster der Abfrage ist keine MsgBox.
Das geht auch nicht mit einer Abfrage direkt. Du benötigst ein Formular mit einem Feld und dem Eingabeformat "Kennwort". Die Abfrage muss dann das Formularfeld verwenden.
Gruß Klaus

Tally

Danke für den Hinweis; kannst Du mir einen Tip geben, wie ich dies "gestalten" muss bzw. wie ich ein solches Formular zur Abhängigkeit der Passwort-Tabelle erstelle?
Vielen Dank für Deine Unterstützung; Gruss René

MzKlMu

Hallo,
was soll die Abfrage dann machen?
Gruß Klaus

Tally

Hallo
Die Abfrage öffnet ein Formular, welches folgende Datenherkunft hat:
tbl Passwort (bestehend auf ID, Initialen, Passwort
tbl Mitarbeiter (bestehend aus ID, Initialen, NameMA
ansonsten ist es ein Hauptmenü-Formular, aus welchem dann zum Beispiel Buchhaltungs- oder Personaldaten aufgerufen werden können.
Wenn das Passwort richtig eingegeben wird, wird das Formular vollständig angezeigt, wird das Passwort falsch eingegeben, erscheint nur das leere Formular.
Komfortabler wäre es natürlich, wenn ein falsches Passwort eingegeben wird, dass Formular gar nicht erst geöffnet, sondern mit dem Hinweis auf eine falsche Passwort-Eingabe die Anfrage geschlossen würde.
Könnt Ihr mir dazu weiterhelfen? Besten Dank; Gruss René

MzKlMu

#7
Hallo,
sorry, aber eine Abfrage kann kein Formular öffnen. Es muss ein Formular verwendet werden, das an die Abfrage gebunden ist.

Und das Öffnen des Formular muss gesteuert werden, nicht die Abfrage.
Wie öffnest Du das Formular?
Und wie idendifizierst Du den Mitarbeiter, es genügt ja nicht das Passwort zu prüfen, es muss ja auch zum Mitarbeiter passen.

Warum sind Passwort und Mitarbeiter überhaupt in zwei getrennten Tabellen?

Und wenn schon 2 Tabellen, würde man für die Beziehung nicht die Initialen verwenden, sondern die ID des Mitarbeiters.
Gruß Klaus

Tally

Hallo
Ich rekapituliere meine IST-Situation:
Ich habe zwei Tabellen, eine Tbl Passwort (Initialen, Passwort) und eine Tbl Mitarbeiter (Initialen, Name). Die Tbl Mitarbeiter ist öffentlich, die Tbl Passowort nur im "geschützten" Bereich zugänglich, wo der Mitarbeiter mittels seiner Initialen sein Passwort festlegen oder verändern kann. Den Zugang erhält er nur temporär über einen authorisierten anderen Mitarbeiter, deshalb zwei Tabellen und als Anmeldung die Initialen anstelle der Mitarbeiter-ID, welche der Mitarbeiter in der Regel nicht kennt.
Aus einem Hauptmenü öffne ich mittels Schaltfläche das Menü Personal (Formular, welches als Datensatzquelle die Tbl Passwort und Mitarbeiter hat, welche in einer Abfrage das Kriterium "Geben Sie das Passwort ein" enthält. Auf dem Formular ist nur ein Steuerelement, nämlich der Mitarbeiter-Name im Detailbereich abgelegt.) Wird beim öffnen das richtige Passwort eingegeben, sind alle Schaltflächen auf dem Formular im Detailbereich ersichtlich. Bei Falscheingabe wird nur der Formularkopf angezeigt, der Detailbereich bleibt leer und kann somit nicht genutzt werden, um in weitere verzweigte Menüs mittels Schaltflächen zu gelangen.
Ziel: Ich möchte die zu tätigende Passwort-Eingabe hinter Sternen ****** verstecken, sodass niemand bei der Eingabe das Passwort lesen kann.
Im Anhang habe ich einige Prints angefügt, welche meinen Aufbau zeigen. Ich hoffe, zur Klarheit beigetragen zu haben und würde mich auf eine kreative Lösung freuen; Gruss René

MzKlMu

#9
Hallo,
die wichtigste Frage hast Du nicht beantwortet.
ZitatWie öffnest Du das Formular?
dort muss man ansetzen, denn Du willst ja das Formular erst gar nicht öffnen.
Die Parameterabfrage kannst Du nicht verwenden, bzw. Du benötigst gar keine Abfrage. Das macht man mit DLookup() oder DCount() die entsprechende Werte zurückgeben, je nach gefunden oder nicht.

Der Vergleich ist auch nicht so einfach, wie Du Dir das vorstellst. Der muss vollständig per VBA programmiert werden, denn der Vergleich muss binär erfolgen, sonst wird nicht zwischen Groß und Kleinschreibung unterschieden.

Zitatals Anmeldung die Initialen anstelle der Mitarbeiter-ID, welche der Mitarbeiter in der Regel nicht kennt.
trotzdem sollten Beziehungen über die ID laufen und nicht über die Initialien. Die ID muss auch dann der Mitarbeiter nicht kennen.
Die Beziehung sollte wie im Bild aufgebaut sein.
Für DLookup/DCount wird dann eine Abfrage verwendet, mit beiden Tabellen.
Mit DLookup/DCount wird dann an Hand der Initialen das Passwort geprüft. Die ID (Zähler) selbst ist dabei bedeutungslos, dient nur für die korrekte Beziehung.
Gruß Klaus

Tally

Hallo
Im angefügten Pdf siehst Du die Schaltfläche "Personelles" welche das Formular öffnet. Also beim clicken ist die normale Öffnungsprozedur hinterlegt und auf dem Formular dann die ebenfalls abgebildete Abfrage als Datensatzquelle. Müsste dann also die DLookup/DCount Funktion ergänzend zum Öffnungsbefehl hinterlegt werden und wenn ja, wie müsste diese Beschreibung korrekt aussehen?

database

Hallo,

ZitatIm angefügten Pdf siehst Du die Schaltfläche "Personelles" welche das Formular öffnet

Das ist genau ein Schritt zuviel und vergiss die Parameterabfrage.
Beim Klicken auf die Schaltfläche 'Personelles' soll ein weiteres FORMULAR geöffnet werden - gleichzeitig kann dabei das 'Startformular' ausgeblendet werden - in das der Benutzername und das Passwort einzugeben ist. Auf diesem Formular kannst du mit verdeckten Eingaben arbeiten (*******)
Dann erfolgt der von MzKlMu angesprochene Vergleich der Eingaben mit den gespeicherten Werten.
Fällt dieser Vergleich positiv aus, wird das Formular in der Form angezeigt, wie du es im PDF dargestellt hast.

Tally

Ich erstelle also ein leeres Popup-Formular mit zwei ungebundenen Textfeldern -Benutzername- und Passwort. Soweit so gut, nur jetzt stossen meine Access-Kenntnisse an eine Grenze: wie stelle ich es jetzt an, dass diese Eingabe in der Tabelle Passwort verifiziert werden und bei Richtigkeit das gewünschte neue Formular öffnet bzw. mich auf eine Falscheingabe hinweist oder das Popup schliesst? nur zur Ergänzung: ,meine aufgeführte Konstellation funktioniert bereits, einziger Nachteil ist, dass eben bei der Passwort-Eingaben diese ersichtlich ist; OK, kleiner Nachteil ist auch, dass das gewünschte Formular trotzdem geöffnet wird bei Falscheingabe, einfach ohne InhaltDanke für Eure Hilfe; Gruss René

MzKlMu

#13
Hallo,
Zitatmeine aufgeführte Konstellation funktioniert bereits,
nein, nicht wirklich, denn es wird nicht zwischen Groß und Kleinschreibung unterschieden, was bei einem Passwort sein sollte.
XyZ, xyz, XYZ, XYz, xYZ wird alles als gleich erkannt.

Im Anhang ein einfaches Beispiel. Die Tabellen sind so wie Du diese hast.
Einfach das Formular "Start" öffnen. Vorher in der Passworttabelle nach dem richtigen Passwort sehen, Groß/Kleinschreibung ist zu beachten.

Gruß Klaus

Tally

Super-Lösung, der Samstag ist gerettet  :), vielen Dank; Gruss René