Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aktuelle Daten archivieren

Begonnen von Bernie110, Juni 12, 2012, 08:51:39

⏪ vorheriges - nächstes ⏩

Bernie110

Hallo Zusammen,


ich hab eine Tabelle mit folgenden Daten :

ID = Autowert+Pk
Datum = Datumsfeld
Name_User = Text
Anzahl_Lieferscheine = Zahl
Anzahl_Positionen = Zahl

Hier wird angezeigt  wieviele Positionen von einem Kommissionierer kommissioniert wurden.

Da diese Daten aus unsererm Warenwirtschaftssystem kommen, kann ich leider nichts hinzufügen.

Ich hätte aber gerne noch angezeigt bekommen, in welcher Zeit das kommissioniert wurde.

Jetzt dachte ich mir vielleicht kann man diese Daten automatisch, so alle 10 minuten, in eine anderen Tabelle
speichern und den speichervorgang in einem Feld : zeit, seitlich darstellen.

weiss aber leider nicht wie man das umsetzten könnte.

Oder hat jemand eine andere Idee ?

Bin für jede Antwort dankbar

Gruss
Bernie




Hondo

Hallo,
so produziert man auf Dauer Datenmüll.
Wenn diese Information wieviele Lieferscheine/Positionen ein bestimmter User (Personenbezogene Daten...frag mal den Betriebsrat was er davon hält...) in einer bestimmten Zeit kommisioniert, dann solltest du entweder in einem Startformular einen Formulartimer laufen lassen, oder einen API-Timer installieren.
Zeitintervall wäre beim Formulartimer 600000 für 10 Minuten.
Gleichzeitig würde ich aber auch dafür Sorgen dass z.B. 1x täglich der Datenmüll vom Vortag gelöscht wird.

Speichern mit Currentdb.Execute "Insert..."
Löschen mit Currentdb.Execute "Delete..."

Gruß Andreas

bahasu

#2
N'abend Bernie,

was bedeutet "nichts hinzufügen"?
a) beim Import aus dem anderen System ist nichts hinzufügbar? oder
b) die Tabelle ist nicht erweiterbar?

Falls die Tabelle nicht erweiterbar ist, könntest Du eine neue Tabelle erstellen, die über die ID mit der Import-Tabelle verbunden ist und ein Datumsfeld + Zeitfeld enthält.
Über eine Timerfunktion, die alle x-Minuten sich aufruft, wird geprüft, ob es zur ID aus der Import-Tabelle einen passenden ID-Wert in der neuen Tabelle gibt. Falls nein, dann dort einen neuen Datensatz anlegen und den mit date + time füttern.

Falls die Tabelle erweiterbar ist, dann die Tabelle um date-  + time-Feld erweitern und per Zeitereignis alle x-Minuten prüfen, ob es leere date-/time-Felder gibt und diese dann füllen.

Harald
Servus

database

Hallo Bernie,

eine Möglichkeit wäre es das Timer-Ereignis z.B eines Startformulars zu verwenden

Beim Ereignis 'Beim Öffnen' schreibst du:

Me.TimerInterval = 600000 '10 Minuten

und ins Ereignis 'Form_Timer'

DoCmd.SetWarnings False  'Standardmeldungen ausschalten
Docmd.OpenQuery "qryArchiv"
DoCmd.SetWarnings True


Erzeuge ein Kopie der Herkunftstabelle ohne Daten, entferne den PK und stell das Feld auf Zahl um.
Dann fügst du ein Feld am Ende der Tabelle hinzu meinetwegen 'Speicherung' verpaßt dieser Spalte das Format 'Zeit, lang' oder 'Standarddatum' (dann wird das Datum samt Zeit geschrieben) und stellst als Standardwert '=Jetzt()' ein.
Die Tabelle speicherst du und nennst sie 'tblArchiv'
Dann erzeugst du dir eine Anfügeabfrage auf diese Tabelle, fügst alle Spalten hinzu und beim PK stellst du als Kriterium ein
NOT IN (SELECT ID FROM tblArchiv)
... und speicherst sie unter dem Namen 'qryArchiv'

Sollte dann alle 10 Minuten die angefallenen Datensätze der Herkunftstabelle in die tblArchiv schreiben.

Wobei ich schon auf der Seite von Hondo bleibe und ähnliche Bedenken anmelden darf - Datenmüll ist schnell produziert  ;)


Stapi

Hallo Bernie

Wenn der Mitarbeiter einen Auftrag anfängt wird im Normalfall ein Lieferschein erzeugt, der Lieferschein trägt in einem guten Warenwirtschaftsystem immer ein Zeitstempel wann der Lieferschein "gezogen" worden ist Über den Lieferschein ist dann ebenfals bekannt wieviele Positionen dieser enthält. Zwischen zwei Lieferscheinen die Zeit ist somit dann zu errechnen. Somit sollte die Ermittlung der Pickleistung des einzelnen Mitarbeiter ohne ständige Zeitliche Abfrage des System möglich sein.
Grüße aus dem schönen NRW
Stefan

bahasu

N'abend,

ein Weg, Datenmüll zu vermeiden, ist das Löschen von doppelten Daten (Import-Tabelle und Archiv-Tabelle).

Ein anderer Weg ist, gar nicht erst doppelte Daten entstehen zu lassen. Deswegen mein Vorschlag, bei der womöglich nicht änderbaren Tabelle per Verknüpfung die fehlenden aber erwünschten Informationen zu verlinken. Es ist mir auch klar, dass dann eine 1:1-Beziehung entsteht, die vielfach für suboptimal gehalten wird, was ich aber in diesem Fall als akzeptabel halte.

Harald
Servus

Bernie110

Hallo danke für eure Antworten

@ Hondo der Betriebsrat sagt nichts dazu, denn die Kommissionierer erhalten dadurch mitunteranderem ihre Provision.

Interessante Vorschläge.
Werde mir mal n Kopf machen.

Fragen hierzu folgen  ;D

Gruss
Bernie