Neuigkeiten:

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

Mobiles Hauptmenü

Anfängerfrage: Benutzerauswahl für Datenbanken

Begonnen von Nofirm, Dezember 07, 2016, 15:57:07

⏪ vorheriges - nächstes ⏩

Nofirm

Hallo zusammen,

Ich bin gerade dabei eine Datenbank aufzubauen, in der sich die Benutzer vorher auswählen müssen, bevor sie eine neue Eingabe in der Datenbank machen können.

System: Access 2016

Kurzes Szenario:

Ich habe insgesamt 8 Mitarbeiter die mit einem Barcode Scanner Seriennummern und dazugehörigen automatischen Datum in eine Access Datenbank schreiben.
Da wir aber wissen müssen welche Mitarbeiter welche Seriennummern gescannt haben und wieviele Seriennummern ein Mitarbeiter pro Tag schafft, bräuchte ich eine Personen Vorauswahl die nur EINMAL eingegeben werden soll sozusagen als default wert.

Über vorschläge oder Anregungen würde ich mehr sehr freuen.


Beaker s.a.

Hallo,
Führe in der Tabelle, in der die Seriennummern landen einen Fremdschlüssel
(MAID) mit. Die Auswahl des MA kann dann über das Formular in dem gescannt
wird mit einem Kombi-Feld ausgewählt werden.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Nofirm

Danke schoneinmal für die Antwort aber ich weiss leider nicht genau wie ich mir das vorstellen soll, da ich in der Materie leider nicht ganz so tief drin stecke.

Vielleicht ist ja auch meine Aussage nicht verständlich rüber gekommen.
Ich dachte eher an eine Art Formular am Anfang wo der Mitarbeiter seinen Namen auswählt und dann anfängt zu scannen. Wenn ein anderer Mitarbeiter zum Scannplatz geht, wähl er dann seinen namen aus und so weiter.
Der Mitarbeiter soll ja nicht bei jedem Scann vorher noch seinen Namen eintragen

Es soll für den Anwender möglichst einfach gehalten werden.

crystal

Hallo,
wie Beaker schon gesagt hat, brauchst du erstmal eine Tabelle mit den MA-Namen und einer MaID (Autowert).

Nun könntest du einen kleinen Login-Dialog basteln, in dem der MA seinen Namen auswählt. Die MaID kannst du im Kombifeld auf Breite 0cm stellen, so dass sie nicht sichbar ist. In diesem Formular hast du noch einen Button "Scan starten".

Nach Auswahl seines Namens und ggf. Eingabe eines Passworts (anderes Thema) klickt der MA auf den Button. Dadurch wird das LoginFormular NICHT geschlossen, sondern nur unsichtbar gemacht und das Scan-Formular aufgerufen.
Darin hast du ein MaID_FK-Feld, dass du mit
MaID_FK = me.forms("LoginForm").cboMaID besetzt, im Form_Current-Event.
Im Scan-Formular hast du noch einen Button "Beenden", der das Scan-Formular schließt, das Login-Formular wieder sichtbar macht und darin den MA-Namen (und das Passwort) leert. Du könntest das Scan-Formular auch mit einem Inactivity-Timeout z.B. nach 2 Minuten automatisch schließen (btnBeenden_Click aufrufen), dazu müsstest du den Timer einfach nur im Current-Event neu starten.

ODER:
Du speicherst die MaID in einer globalen Variable (Definition in einem Modul), so dass sie in allen anderen Dialogen zur Verfügung steht.
ODER:
Du speicherst die MaID in einer Tempvar, so dass ... wie oben.

Du musst noch erreichen, dass das Scanformular immer auf einen neuen Datensatz geht und sich automatisch speichert, also wieder einen neuen Datensatz aufruft. Lachtaube hat dafür eine tolle Lösung gepostet, siehe

http://www.access-o-mania.de/forum/index.php?topic=21997.msg126938#msg126938

Eine weitere Variante wäre es, ein ungebundenes Hauptformular zu nutzen, in dem der MA ausgewählt wird und der Scan in einem Unterformular (Einzel-Formular, nicht Endlos-Formular) erfolgt. Da könntest du die MaID dann über me.parent.cboMaID holen.

So, damit sind wohl alle Klarheiten beseitigt...  :-\

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

crystal

Hallo nochmal
und keine Panik.

Den letzten meiner Vorschläge habe ich hingebastelt, so dass du ihn vielleicht sogar schon benutzen könntest.
War doch etwas schwieriger, als gedacht.
Starte einfach das Formular "Scannen" und probiere etwas herum.

Andere sind herzlich aufgerufen, sich meine kleine Lösung anzuschauen und ihre Profi-Vorschläge zu machen. Es sind auch zusammen nur ca. 30 Zeilen Code.

lg
crystal

PS: das ganze ist so gestaltet, dass es nicht möglich ist, einen Scan-Datensatz zu speichern, ohne zuvor einen MA ausgewählt zu haben.

Wird ein Scan-Wert eingegeben (in der Simulation nach Drücken der Enter-Taste), wird der DS abgespeichert und das Formular wechselt zu einem neuen leeren DS. Der Scanner muss also so konfiguriert werden, dass es ein "Enter" automatisch anfügt.

Die oberen Felder werden nur zur Info und zum Debuggen angezeigt.

Kleines Problem fällt mir noch ein: Datum und Uhrzeit werden im Current-Event gesetzt; besser wäre nätürlich, das erst bei einem neu gescannten Wert zu tun.

UND: das Ganze ist natürlich nicht unter Feldbedingungen getestet...

Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

PhilS

Zitat von: crystal am Dezember 08, 2016, 15:03:58Andere sind herzlich aufgerufen, sich meine kleine Lösung anzuschauen und ihre Profi-Vorschläge zu machen. Es sind auch zusammen nur ca. 30 Zeilen Code.
Ich habe leider gerade nicht mal für 30 Zeilen Zeit. - Ich möchte nur kurz dazu anregen, darüber nachzudenken, ob nicht das Windows-Login ausgelesen werden kann, womit die gesamte Benutzerauswahl entfallen könnte.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Nofirm

schon einmal vielen Dank für die vielen Vorschläge und Danke an Crystal, ich glaube ich werde versuchen auf deiner Vorlage Aufzubauen.  :) Ich werde berichten wenn ich weitergekommen bin