Ich benutze Access 2007, habe eine Adress-Datenbank in der hin und wieder Änderungen vorgenommen werden müssen. Damit ich später weiss, wo ich mal etwas geändert habe, würde ich diese Felder gerne in einer anderen Farbe kenntlich machen. Mit Schriftfarbe ändern, kann ich nur die Schrift der kompletten Datenbank ändern.
Moin, Ulla,
das Ändern einer Anzeigefarbe wäre noch recht einfach, dazu braucht’s einen Befehl .Forecolor = DeineFarbe (zB 255 für Knallrot), der gehört in die Ereignisprozedur _Changed.
Damit wird der Feldinhalt umgefärbt, das allerdings für alle Sätze im Vorrat, und beim nächsten Aufruf ist die Farbe wieder weg. Da muss also die Änderung pro Satz in der Datenbank vermerkt werden. Lohnt das den Aufwand?
Gruß Ralf
Hallo Ralf,
danke für die Antwort, aber das hilft mir nicht wirklich weiter, denn ich möchte nicht den kompletten Datensatz sondern nur das geänderte Feld in z.B. „rot“ haben und das soll auch dauerhaft so bleiben. In Excel ist das ja überhaubt kein Problem, da markiere ich einfach ein Feld und nur da verändert sich dann die Textfarbe. In Access kann ich ruhig ein Feld markieren und dann auf Textfarbe ändern gehen, damit wird dann trotzdem die komplette Datenbank geändert. Aber vielleicht weiß ja noch jemand anders eine einfache Lösung.
Vielen Dank erst einmal
Ulla
Access, Excel und Word - warum gibt es die 3?
Hi Ulla,
die Eigenschaft .Forecolor betrifft genau das Feld mit dem Namen , alles andere bleibt unberührt.
Infos, die über die Sitzung hinaus erhalten bleiben sollen, müssen wohl oder übel in der Datenbank abgelegt werden. Und Deine Feldfarbe, genauer der Zustand des Feldes, ist nun mal eine Information, die an einem Feld in einem Datensatz hängt.
Ob in Excel irgend etwas einfach geht, ist leider nicht von Belang, wenn in Access gearbeitet werden muss. Wenn es um das Verfolgen von Änderungen geht, ist übrigens Word unschlagbar, aber Word ist auch kein Access.
Gruß Ralf
qrz df6qp,
die Frage stellt sich hier aber zunächst, welchen Sinn es nun ergibt, wenn ein Feld umgefärbt wird, sobald eine Änderung an dessen Wert (Inhalt) erfolgt. Im Laufe der Zeit werden bei solchem Konstrukt alle Felder (außer vielleicht den Primärschlüselfeldern) nach und nach bei der ersten Änderung umgefärbt und umgefärbt bleiben…
Wenn eine „Änderungs-Historie“ erstellt werden soll (Nachvollziehbarkeit der Änderungen über die Zeit), so muss ganz anders (und mit viel Aufwand, als nicht einfach „einfach“) an die Sache herangegangen werden. Das Prinzip dabei wäre, eine Prozedur zu schreiben, die beim Ereignis „Vor Aktualisierung“ eines JEDEN Feldes, das überwacht werden soll, dessen aktuellen Wert und den Vorgängerwert (und neben den Meta-Daten-Angaben über Feldname, Feldtyp, Tabellen/Formularname, Datum, Username, etc )in eine entspr. aufgebaute Tabelle schreibt.
Auf www.dbwiki.net gibt es eine Beispiel-DB (Audittrail) die Ähnliches bietet.
73 de df6gl
Gruß
Franz
Hallo Ralf,
danke für Deine Mühe, dann muß ich da wohl mit leben dass das nicht funktioniert.
MfG
Ulla
Hallo,
„geht nicht“ gibt es nicht. Es fragt sich nur, ob eine Realisierung der Vorstellung zum erwünschten Effekt (Ziel) führt. Ansonsten habe ich auf Deine Mail mit einer etwas detailliertere Beschreibung zur Umsetzung mit Ja/nein-Feldern geschrieben.
Gruß
Franz, DF6GL
Tabellen sind nicht immer Tabellen
Moin, Ulla,
dann muß ich da wohl mit leben dass das
nicht funktioniert.
alles ist machbar, fragt sich halt, welcher Aufwand getrieben werden soll oder kann.
Nochmal zum Unterschied zwischen Excel und Access: Was sich in Excel Tabelle schimpft, ist gar keine Tabelle, sondern eine 2-dimensionale Anordnung von Zellen, die jede für sich ein „Individuum“ ist, dessen Eigenschaften im Arbeitsblatt festgelegt werden.
Im Gegensatz dazu ist eine Access-Tabelle eine Reihung von Zeilen völlig gleicher Struktur, wobei alle Elemente einer Spalte die gleiche Eigenschaften haben. Das Endlosformular ist dabei nur ein Trick, die Zeilen und Spalten in der Fläche zu zeigen.
Gruß Ralf