Unterschiede in Spalten makieren

Dave1337

Neuer Benutzer
Beiträge
1
Guten Tag,
meine Datenbank erstellt eine log-Tabelle von Änderungen in den einzelnen Datensätzen.

Nun habe ich das Problem, wenn ich mir den Log zu einem bestimmten Datensatz anzeigen lasse, in einem Endlosformular, ist das Rech unübersichtlich heraus zu finden was sich in dem Datensatz im vergleich zu dem letzten malen geändert hat.

Ist es möglich die Spalten mit einander zu vergleich und die Unterschiede zu markieren.

Hier mal ein Bespiel:

ID Name Datum

1 Test_1 13.05.2016
1 Test 13.05.2016

Hier hätte sich der Name geändert und diesen hätte ich dann ganz gerne eingefärbt/markiert.
Da in meiner Datenbank ja um einiges mehr als nur Name angezeigt wird ist das manchmal recht unübersichtlich.

Hat jemand Abhilfe für mich?
 
Werbung:
Also bei einer regulären SQL DB kann man nichts in der Ausgabe färben, das fällt unter Formatierung und ist nicht wirklich eine Aufgabe der DB. Access ist nicht nur DB sondern auch Frontend, ich weiß aber nicht genau ob es hier so etwas wie Bedingte Formate in Excel gibt, ich glaube da muss man schon viel basteln. Das bezieht sich dann auch nur auf die Darstellung der Daten und hat mit SQL nichts zu tun.

Mit SQL könnte man mit Fleißarbeit eine andere Übersicht zusammen bauen. Die müsste man allerdings für jedes Daten-Feld anlegen um unterschiede schön übersichtlich zu bekommen.
Code:
WITH t AS (
   SELECT   ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Datum) AS zeile,
       ID,
       Name AS Wert,
       Datum
   FROM   tabelle
   )
SELECT   t2.ID,
     t2.Datum,
     'Name' AS Spalte,
     t1.Wert AS alter_Wert,
     t2.Wert AS neuer_Wert
FROM   t t1
LEFT JOIN t t2
ON     t1.zeile + 1 = t2.zeile
WHERE   t1.Wert != t2.Wert
Ich weiß nicht genau ob Access WITH akzeptiert.

Alternativ könnte man gleich in einem übersichtlicheren Format loggen. Nicht immer den ganzen Datensatz sondern nur die Veränderungen a la: ID,Datum,Spalte,neuer_Wert,alter_Wert
 
Zurück
Oben