Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Änderungsdatum + Erstellungsdatum Ausdrücke





Frage

hallo leutis ::)! diese zwei fragen sind sicher schon gähn für euch. leider aber habe ich mit dem knowhow kompendium probleme und kann es dort nicht nachschlagen (wird nicht vollständig geladen). daher meine fragen hier an euch: - ich möchte für meine datenbank zu jedem datensatz in den tabellen wo das nötig ist ein erstellungsdatum erfassen. ich habe jedoch aufgrund meiner unwissenheit probleme mit dem ausdrucksgenerator. dieses erstellungsdatum soll: 1. beim erstellen des datensatzes egal ob von tabellennutzung oder formularnutzung erfaßt werden. 2. erfaßt werden in der form: jahr (4stellig, zahlen), monat (z. B. "Apr." dreibuchstabig mit punkt, zur not 2stellig zahlen), tag (zweistellig, zahlen). die trennzeichen sind mir relativ egal, ich bevorzuge bindestriche. dahinter sollte unbedingt die uhrzeit im üblichen format hh:mm:ss oder nur hh:mm stehen. 3. es sollte nicht veränderbar sein. also standardwerterfassung und blockierung für weitere änderungen. - ich möchte für meine datenbank zu jedem datensatz in den tabellen wo das nötig ist ein änderungsdatum erfassen. ich habe jedoch aufgrund meiner unwissenheit probleme mit dem ausdrucksgenerator. das änderungsdatum soll: 1. beim ändern des datensatzes egal ob von tabellennutzung oder formularnutzung erfaßt werden, jedoch nur, wenn eine änderung der daten! vorgenommen wurde (also durchtapsen und ansehen gilt nicht!). 2. wie 2. oben 3. es sollte nur nach dem verlassen=speichern des geänderten datensatzes erneuert werden, jedoch händisch nicht in formular oder tabelle änderbar sein. also standardwerterfassung beim speichern. leider weiß ich nicht genau, welche info ihr noch braucht, um mir zu helfen. die access-programmhilfe bietet leider nicht viel. vielleicht sagt ihr aber ja klar, die ausdrücke sag ich dir im schlaf, das wäre mir angenehm. danke anita

Antwort 1 von 14071

Hi Anita,

für das Erstelldatum des Datensatzes reicht es ein Feld in die Tabelle einzufügen und den Standardwert auf Jetzt() zu setzen. Dieses Feld gibst du dann in den Formularen nicht aus (wird ja automatisch gefüllt).

Die Anzeige kannst du dann später definieren, wie es dir gefällt, Access speichert immer das volle Datum ab.

Bei ändern des Datensatzes wird es etwas komplizierter. Hier bindest du eine Prozedur an ein Ereignis. Das könnte zB ein Button speichern sein, der nötig ist um die Änderungen zu speichern. In dieser Prozedur legst du fest, daß in dem Feld Änderungsdatum, das aktuelle Datum gesetzt wird.

Gruß
Jürgen

Antwort 2 von JohnnyLoser

Hi Anita,

wie Jürgen schon beschrieben hat, 2 Felder in die Tabelle einfügen, z.B. CreateDate und EditDate. Standardwert für CreateDate auf Jetzt() setzen.

Solange der User die Aktualisiereungsberechtigung auf die Tabelle hat, kann er allerdings JEDES Feld ändern, auch das CreateDate.

Das automatische Eintragen eines Änderungsdatums ist lediglich in Formularen via Prozedur möglich.

Mein Tip:

Entziehe dem User doch einfach die Rechte auf die Tabelle und lasse ihn ausschließlich mit einem Formular arbeiten. Dieses Formular basiert auf einer Abfrage, die Du beim Öffnen des Formulars zuweist. In etwa so:


Me.RecordSource = "SELECT Feld1, Feld2, Feldn FROM Tabelle1 WITH OWNERACCESS OPTION"


Hierdurch kann der User nur die ausgewählten Felder sehen und erhält über den Zusatz WITH OWNERACCESS OPTION trotzdem die Rechte des Eigentümers, obwohl seine Rechte das Lesen eigentlich nicht zulassen.

Sonstige Einschränkungen, wie z.B. das Löschen von Datensätzen, kannst Du ja über die Formulareigenschaften einstellen.

Gruß

Johnny

Antwort 3 von Anita

:D Huhus.
alles haperte daran, daß ich nicht wußte, daß das datumformat jetzt() für mich schon ausreicht, weil es auch die uhrzeit mit drin hat.

Mittlerweile habe ich eine für mich ausreichende lösung gefunden:

Änderungsdatum:
Ich habe einen speichern-Button erstellt und diesem button ein makro zugewiesen:

1. setzenwert: [Formulare]![Hersteller+Verleger]![Geändert am]
ausdruck: jetzt()
2. GeheZuDatensatz:
Datensatz:nächster
offset:1

in der tabelle habe ich dem feld geändert am einfach nur das format datum/zeit zugewiesen. mehr nicht.

das ergebnis: ich habe ein feld, in dem ich das datum bequem ändern kann, aber nicht muß (z.B. wenn es keine änderungen gibt oder nur rechtschreibfehler).

erstellungsdatum:
auch da war die goldene lösung, den ausdruck jetzt() zu kennen.
er wurde in der tabelle im zugehörigen feld als standardwert eingesetzt.

im formular wurden das steuerungselement so eingestellt, daß man nicht zugreifen kann. d.h. reiter daten: aktiviert:nein, gesperrt: ja.

und fertig. ist ja nur für mich.

gruß und dank anita