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.
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
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.
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
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...
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.
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