ichbinhier
Goto Top

Access 2007 - Bericht alle 5 Minuten neu aufbauen

Access 2007
1 FrontEnd mit Formularen, Berichten, Abfragen, 1 Parameter Tabelle
1 Backend mit Tabellen

Hallo,

ich sitze gerade für die Firma an einer Datenbank für die Fertigung.

Wir stellen uns vor, dass die Abteilung Endkontrolle bei Fertigstellung eines Artikels in die Datenbank eingibt, dass sie X Stück fertiggestellt hat und diese ins Lager gegeben hat.

Zeitgleich steht ein PC mit Flatscreen in der Fertigung sichtbar für alle, die den Vergleich zwischen Planmenge und Istmenge zeigt.

Da sich die Daten nun alle paar Minuten mal ändern können habe ich einen Timer in den Bericht eingebaut, der eigentlich alle 5 Minuten den Bericht schließt und die Daten neu aufbaut und den Bericht neu anzeigt.

1 Durchlauf schafft dieser Timer, aber auch nur, wenn ich den Bericht manuell starte, danach ist schluss. Jetzt soll es aber so sein, dass das Frontend für die Fertigung automatisch den Bericht aufruft, wenn die Datenbank gestartet wird. (Dieser Teil funktioniert schon einwandfrei)

Kurz gesagt wo ich das Problem habe ist mit dem Timer, dass er nur einmal manuell durchläuft und danach nichts mehr kommt.

Hat einer von Euch eine Idee, wie ich das bewerkstelligen kann?

Vielen Dank für Ihre Hilfe.

Option Compare Database

Private Sub Report_Open(Cancel As Integer)

    ' Alle 5 Minuten  
    Me.TimerInterval = 150000

End Sub

Private Sub Report_Timer()

    ' Bericht schließen  
    DoCmd.Close acReport, "rep_Fertigung"  
    
    ' Daten neu aufbauen, Bericht erstellen, anzeigen und maximieren  
    Call func_rep_Fertigung

End Sub

Content-ID: 145758

Url: https://administrator.de/contentid/145758

Ausgedruckt am: 25.11.2024 um 18:11 Uhr

83928
83928 28.06.2010 um 08:54:39 Uhr
Goto Top
Hallo,
warum nimmst Du nicht ein Formular, dass würde mir zumindest für die Aufgabe geeigneter erscheinen.

Das Schließen des Berichts (noch dazu in der Timer-Procedur) ist mir auch nicht ganz klar. Reicht Dir da nicht vllt auch ein Me.Requery????

Gruß aba
ichbinhier
ichbinhier 28.06.2010 um 11:12:57 Uhr
Goto Top
Hallo abaaba,

weil ich im Sub "Timer" nicht nur die Daten neu aufbaue, sondern vorher die alten Daten lösche, neue Daten sammel und daraus den Bericht generiere und das alles habe ich in einer Funktion geschrieben, da ich diese Funktion nicht nur einmal habe.

Gibt es eine Möglichkeit den Timer zurück zusetzen auf Null, dass er beim öffnen wieder von neuem an zählt. Dann müsste das eigentlich alles laufen.

Gruß Axel
83928
83928 28.06.2010 um 11:56:29 Uhr
Goto Top
Hi,
hab das eben kurz durchgetestet und die unten stehende Procedur macht bei mir das, was sie sollte (zu-auf,zu-auf,....)

Private Sub Report_Timer()
DoCmd.Close acReport, "rep1"
DoCmd.OpenReport "rep1", acViewReport
End Sub


Wenn ich mich recht entsinne kannst Du einen Timer "resetten" mit
.enable=false
.enable=true
ichbinhier
ichbinhier 28.06.2010 um 12:18:34 Uhr
Goto Top
Hi,

danke für den Tipp, ich versuche es gerade mit der Geschichte ohne die Funktion, die ich da aufrufe. Mal schauen wie das läuft.

Das mit dem zurücksetzen klappt nocht nicht ganz. Er sagt mir immer, dass er den Bezeichner nicht kennt.

Wie und wo muss ich das schreiben?
ichbinhier
ichbinhier 29.06.2010 um 15:41:41 Uhr
Goto Top
Hallo,

ich habe das Problem gelöst. Im Sinne ist es eigentlich sehr einfach, denn den Timer darf man nicht im aufrufenden Bericht platzieren, sondern in einem Formular, dass den Bericht aufruft.

Jetzt arbeitet mein Bericht & Co. einwandfrei.

Vielen Dank für die Hilfe.

Gruß Axel