Neuigkeiten:

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

Mobiles Hauptmenü

Ratschlag für Zeitfunktion

Begonnen von Carl, Januar 20, 2020, 16:32:20

⏪ vorheriges - nächstes ⏩

Carl

Hallo, ich habe mal eine Frage zu einer Zeitfunktion.

Gegeben ist ein Fragebogen, der über mehrere Sitzungen ausgefüllt werden kann. Ich möchte, dass die Zeit, die der Proband mit dem Fragebogen verbringt, in etwa erfasst wird. Es soll ungefähr abgeschätzt werden. Da dache ich mir, dass in einer extra Tabelle fortlaufend Zeitstempel eingetragen werden
* beim Öffnen der DB
* wenn die letzte Eingabe länger als 10 Minuten her ist
* wenn darauf folgend die nächste Eingabe gemacht wird
* beim schließen der DB

Jetzt die Fragen:
* Haltet Ihr dieses Vorgehen für sinnvoll? Wenn nein, welche Alternativen?
* Ist das technisch umsetzbar und wenn ja, wie? Mit welchen Funktionen?

vielen Dank im Voraus
Carl

Hondo

Hallo,
ich würde das nur im Öffnen/schließen Ereignis des Formulars machen wo der Fragebogen sich befindet.
Ob das sinnvoll ist musst du entscheiden. Machbar ist das schon.
Letzte Eingabe länger als 10 Minuten...
ist auch machbar. z.B. wenn du einen Button für "weiter" zur nächsten Frage o.Ä. hast, kannst du beim Klicken auf diesen Button einen Zähler starten. Me.Timerevent = 600000 für 10 Minuten z.B.
Im Timerevent kannst du dann darauf reagieren, z.B. Formulareingabe abbrechen oder MsgBox ausgeben + neuen Timer starten zum prüfen ob auf MsgBox reagiert wird in x Minuten  etc.

Wenn du aber das statistisch auswerten möchtest, brauchst du das nicht. Dann eleminierst du einfach die Ausreiser zum bereinigen deiner Stichprobe.
Gruß Andreas

Carl

Danke, ich denke mal drüber nach. Das mit dem Popup und dem Weiter-Button finde ich auf den ersten Blick am besten. Es geht im Wesentlichen darum zu registrieren, ob er den Platz verlässt oder träumend aus dem Fenster schaut.

Carl

ebs17

ZitatEs geht im Wesentlichen darum zu registrieren, ob er den Platz verlässt oder träumend aus dem Fenster schaut.
Das wäre aber einem Timer egal. Da solltest Du eher einen Druckschalter am Stuhl auswerten.
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
ZitatEs geht im Wesentlichen darum zu registrieren, ob er den Platz verlässt oder träumend aus dem Fenster schaut.
Das wäre ohnehin verboten bzw. mindestens Mitbestimmungspflichtig. Und der Mitarbeiter muss informiert werden.
Das ist ein heises Eisen.
Gruß Klaus

Carl

Es ist ein Proband bei Testaufgaben.

VG Carl

Carl

#6
Zitat von: Hondo am Januar 20, 2020, 19:43:51
Hallo,
ich würde das nur im Öffnen/schließen Ereignis des Formulars machen wo der Fragebogen sich befindet.

Hallo,

hier mal ein Versuch:
* Ich habe jetzt eine tblTime angelegt, mit den Feldern [inmark] und [outmark]. Beim Öffnen des frmHauptFormular soll darin ein DS erstellt werden, der jetzt() in [inmark] schreibt. Dabei soll der DS angehängt werden.

* dann möchte ich im frmHauptformular einen timer, der nach 10 Minuten Inaktivität ein frmpopup_unterbrechen lädt. Beim Laden soll ein jetzt() in die [outmark] geschrieben werden.

* wenn der Proband im frmpopup_unterbrechen auf die Schaltfläche "OK" klickt, soll diese Schaltfläche einen neuen DS in tblTime erstellen mit einem jetzt() in der [inmark].

* beim Schließen des frmHauptformular soll wieder herum eine [outmark] gesetzt werden.

Später wird über eine Abfrage die Zeit zusammen gerechnet.

Ist das so sinnvoll? Mit welcher Funktionen lege ich einen neuen DS beim öffnen der HF mit jetzt() an? Er muss sich ja die ID merken und an das Popup übergeben, oder?

Carl


Hondo

Hallo,
wenn du eine Version deiner DB hier hochlädst, könnten wir daran arbeiten und dir genau zeigen wie was geht.
Gruß Andreas

Carl

Ich habe hier mal eine ausgespeckte Datei angehängt. Die Abfragen sind noch drin und zeigen die 10 Aufgabenblöcke.

Ich versuche dann, Eure Vorschläge selbst einzubasteln.

Carl

Hondo

Sorry, damit kann niemand was anfangen.
bitte testen und nochmal korrigiert hochladen.
Alles bleibt leer, da die Formulare fehlen.
Andreas

PhilS

Kurze Anmerkung außerhalb des aktuellen Thread-Kontexts: Es gibt ein Beispiel von Microsoft, wie man Inaktivität des Users feststellen kann. - Detect user idle time or inactivity

Auch von mir nochmal die Anmerkung, dass die Überwachung von Mitarbeitern oder sonstigen Personen arbeitsrechtlich und datenschutzrechtlich problematisch ist und nicht ohne deren Wissen und Zustimmung erfolgen sollte.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Carl

#11
Danke für den interessanten Link. Ich versuche es mal damit.

Zu Deinen Bedenken: Es geht nicht um Überwachung und die Patienten arbeiten auch nicht. Sie machen Aufgaben und man muss ermitteln, wie lange sie mit den Aufgaben beschäftigt waren. Jeder webbasierte IQ-Test stoppt die Zeit mit, um die Ergebnisse berechnen zu können. Das wissen die auch. Man könnte den Timer auch anzeigen, aber ich möchte sie nicht unter Zeitdruck setzten, denn jeder soll selbst seinen Rhythmus finden. Man muss halt nur schauen, wie lange sie insgesamt brauchen. Auch weil sie zwischendurch immer mal was anderes machen, aufs Klo gehen, zum Frühstück, aus dem Fenster schauen usw..

Carl

Carl

Zitat von: Hondo am Januar 21, 2020, 21:15:19
Sorry, damit kann niemand was anfangen.
bitte testen und nochmal korrigiert hochladen.
Alles bleibt leer, da die Formulare fehlen.
Andreas

Die Funktion soll doch an das Index-Formular und das vorhandene Popup gebunden werden. Die anderen Formulare möchte ich da garnicht mit einbinden, da kommen manchmal welche dazu.

Carl

ebs17

ZitatAuch weil sie zwischendurch immer mal was anderes machen, aufs Klo gehen, zum Frühstück, aus dem Fenster schauen usw..
Mit dem nun vorhandenen Timer bei Inaktivität könnte man einen Bildschirmschoner aufblenden und dabei die Zeitnahme unterbrechen. Um zu arbeiten, muss man ja wenigstens die Oberfläche sehen können.
Mit Beenden des Bildschirmschoners dann folglich die Zeitaufnahme weiterführen.

Und falls die Frage kommt: Nein, so etwas habe ich noch nicht umgesetzt. Aber wenn man einen Plan hat und etwas Motivation dazu, kann man gezielt nach Lösungen suchen
Mit freundlichem Glück Auf!

Eberhard

Carl

Ich habe mir das mal angesehen, aber dieser Code detektiert die Zeit, die jemand idle ist. Damit kann man vielleicht ein Popup auslösen, das seinerseits eine Funktion erhält.

* Ich möchte primär, dass die Zeit des Programmstarts und des Schließen des Programms in eine Tabelle tblTime geschrieben wird. Weil es mehrere Öffnungen und Schließungen geben kann, soll pro Start ein DS mit einer [inmark] angelegt werden und beim Schließen eine [outmark] gesetzt werden.
* Und genau dieser Vorgang soll auch durch ein Popup ausgelöst werden können, wobei hier aber das Öffnen des Popups den DS mit der [outmark] schließt und das Schließen des Popups den neuen DS mit einer [inmark] anlegt.

Carl