PDA

Vollständige Version anzeigen : "Formular öffnen" nur einmal pro Tag zulassen


kaosqlco
01.11.2001, 16:35
Hallo,

wie kann ich verhindern, daß Formulare (z.B. zur Dateneingabe) an einem Tag mehrmals aufgerufen werden?
Vielleicht gibt es eine Art Zähler, der ans Datum gebunden, einen zweiten Startversuch abblockt und am folgenden Tag wieder auf "0" steht?
Gleiches suche ich um Grunde auch für Abfragen (Anfügeabfragen), denn ich muß verhindern, daß Daten in meinen Statistiken doppelt auftauchen.

Danke und Gruß, Jan

Nockenwelle
01.11.2001, 18:39
Hi,

ich würd die art der Statistik ändern. Es kann ja nicht sein, dass du Zugriffe statistisch erfassen willst, diese aber durch dein System geblockt werden sollen.


Cu

WalterS
01.11.2001, 19:24
Hi!
1. Lege eine Tabelle an in welcher du Datum und Aktion speicherst

2. Überprüfe vor dem Öffnen des Formulars ob für den aktuellen Tage bereits ein Eintrag in deiner Tabelle ist

3. Erstelle/Führe aus deinen Abfragen im VBA-Code, denn hier kannst du überprüfen ob für die jeweilige Aktion bereits ein Eintrag in deiner Tabelle ist/ oder nicht.

kaosqlco
02.11.2001, 08:03
Hallo,

Hintergrund meiner Anfrage ist der, daß ich verhindern will, daß es für ein Datum mehrere (verschiedene) Datensätze gibt.
Im Formular sollen die Daten erfasst werden.
Danach soll das Formular an diesem Tag nicht mehr zu öffnen gehen (keine weitere Dateneingabe) oder meinetwegen nur die schon eingegebenen Daten editieren können.

Die Tipps von WalterS probiere ich mal aus und melde mich wieder.

Gruß Jan

kaosqlco
19.11.2001, 16:44
Hallo Forum,

ich wollte folgendes probieren:

Private Sub cmdDateneingabe_Click()
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("tbldaten", dbOpenDynaset)
rst.FindFirst "Datum =" & Me.[Heute]
If rst.NoMatch = False Then

... und danach das Ganze verzweigen.
Die zu prüfende Spalte in der Tabelle heißt "Datum". Im Formular gibt es ein verstecktes Textfeld "Heute". Standardwert dafür ist Datum(). Beide Werte sind als "Datum, kurz" formatiert.
Trotzdem kommt ein "Laufzeitfehler '3077': Sytaxfehler in Zahl in Ausdruck".
Was will mir dieser Fehler sagen? Wohl irgendwas mit nicht übereinstimmenden Formaten. Wie kann ich ihn abstellen?

Gruß Jan

MarioR
20.11.2001, 06:03
Hallo Jan,

so einfach lassen sich Datumsfelder leider nicht übergeben. Versuchs mal so:

rst.FindFirst "Datum =" & CLng(Me.Heute)

kaosqlco
20.11.2001, 09:05
Hallo Mario,

klappt wunderbar.

Danke und Gruß, Jan.