Hallo an Alle,
ich hab mal wieder ein Problem und komme nicht weiter. Vieleicht hat jemand eine Idee oder Lösung dazu. Ich erstelle gerade in der Firma ein Zeiterfassungssystem und lese Daten (welche ich vorgebe ) über Barcodescanner ein. Die Struktur ist folgende:
Barcode=6 Zeichen (Fertigungsauftragsnr) + 2 Zeichen (Arbeitsgang) + 1 Zeichen (Start (1) oder Ende (6))
ScanZeit = Zeit des Scannens
ScanDatum = Datum des Scannens
Mitarbeiter = Nr des Mitarbeiters
Jetzt habe ich folgendes Problem. Um eine effektive Fertigungszeit zu ermitteln, muss ich die Scanzeiten, welche im Barcode mit einer 6 Enden in den entsprechenden Datensatz (endet mit einer 5) setzen, welche die Startzeit hat. Wichtig ist aber dabei, das auch die FertigungsauftragsNr, der Arbeitsgang und der Mitarbeiter gleich sein müssen.
Hier mal ein paar Beispiele, wie die Tabellen aussehen ( verschieden sortiert): -die Spalten sind dann natürlich mit Trennzeichen getrennt -
sortiert nach Mitarbeiter
Barcode Scanzeit ScanDatum Mitarbeiter
13123071 09:30:00 01.09.2018 056656
13123076 10:45:00 01.09.2018 056656
13124071 10:46:00 01.09.2018 056656
13125076 11:25:00 01.09.2018 056656
13125071 11:26:00 01.09.2018 056656
13125076 12:10:00 01.09.2018 056656
13123071 09:34:00 01.09.2018 056657
13123076 09:58:00 01.09.2018 056657
13128071 09:58:20 01.09.2018 056657
13128076 12:03:00 01.09.2018 056657
13123071 09:31:00 01.09.2018 056658
13123076 10:18:00 01.09.2018 056658
13132071 10:18:10 01.09.2018 056658
13132076 10:39:30 01.09.2018 056658
13125081 10:39:50 01.09.2018 056658
13125086 11:59:00 01.09.2018 056658
sortiert Scanzeit
Barcode Scanzeit ScanDatum Mitarbeiter
13123071 09:30:00 01.09.2018 056656
13123071 09:31:00 01.09.2018 056658
13123071 09:34:00 01.09.2018 056657
13123076 09:58:00 01.09.2018 056657
13128071 09:58:20 01.09.2018 056657
13123076 10:18:00 01.09.2018 056658
13132071 10:18:10 01.09.2018 056658
13132076 10:39:30 01.09.2018 056658
13125081 10:39:50 01.09.2018 056658
13123076 10:45:00 01.09.2018 056656
13124071 10:46:00 01.09.2018 056656
13125076 11:25:00 01.09.2018 056656
13125071 11:26:00 01.09.2018 056656
13125086 11:59:00 01.09.2018 056658
13128076 12:03:00 01.09.2018 056657
13125076 12:10:00 01.09.2018 056656
Kann mir hier bitte jemand helfen oder hat jemand eine Idee, wie ich den Barcode so ändern könnte, das ich die Daten besser auswerten kann?
Vielen Dank für Eure Hilfe
Glück Auf
Stollnblech
Du solltest den Barcode auf drei Felder jeweils in einer Abfrage für beide Tabelle aufteilen.
Hier für den Abfrageentwurf:fa_nr: Left$(Barcode;6)
agang: Mid$(Barcode;7;1)
styp:Right$(Barcode;1)
Bei größerem Datenbestand lohnt es sich, die Daten in neue Tabellen zu verpflanzen und die Felder zu indizieren, damit die Ausführung zügig abläuft.
Sinngemäß sollte dann eine Abfrage in dieser Form möglich sein, wobei die gezeigten Daten hier als b und die hier nicht gezeigte Tabelle als a zu betrachten sind.SELECT a.*,
b1.*,
b2.*
FROM ( a
LEFT JOIN b AS b1
ON ( a.fa_nr = b1.fa_nr ) AND
( a.agang = b1.agang ) AND
( a.mitarbeiter = b1.mitarbeiter ) )
LEFT JOIN b AS b2
ON ( a.fa_nr = b2.fa_nr ) AND
( a.agang = b2.agang ) AND
( a.mitarbeiter = b2.mitarbeiter )
WHERE b1.stype = '1' AND
b2.stype = '6';
Statt a.*, b1.* und b2.* wird man in der Praxis nur die benötigten Felder auswählen und durch Aliasnamen voneinander unterscheidbar machen.
Hallo,
ZitatBarcode=6 Zeichen (Fertigungsauftragsnr) + 2 Zeichen (Arbeitsgang) + 1 Zeichen (Start (1) oder Ende (6))
Diese Beschreibung (9 Zeichen) passt nicht zu den gezeigten Barcodes
(nur 8 Zeichen).
Um einen Barcode einscannen zu können, muss der vorher irgendwie
erzeugt werden. Da der Barcode atomare Informationen enthält, vermute
ich, dass das in einer Abfrage passiert. Falls das nicht so ist, sollte das so
eingerichtet werden.
Fragen:
Warum hast du Datum und Zeit getrennt? Mit einem kompletten
Datums-/Zeitfeld lässt sich viel einfacher rechnen.
Warum kannst du nicht mit "offenen" DS arbeiten? Meint Start und Ende
direkt in einen DS. Dann suchst du beim einscannen nur den offenen DS
und schreibst das Ende da rein.
gruss ekkehard
Hallo,
also es stimmt, es sind "nur" 8 Zeichen. 5 Fertigungsauftrag, 2 AG,1 Start/Ende.
Mit dem Datum/ Zeit liegt am Scanner. Ich benutze den Opticon OPN2006. Dieser gibt Datum und Zeit einzeln aus. Beim Importieren generiere ich ein Datenfeld, bei dem diese beiden Informationan verknüpft sind. Damit lässt sich ja viel einfacher rechnen....
Ich teste mal die Vorschläge und melde mich
Vielen Dank schonmal für die schnellen Hilfen.
Glück Auf
vom
Stollnblech