Liebe Access Spezialisten:)
Ich brauch eure Hilfe. Ich bin leider kein Profi und muss trotzdem ein Problem in Access lösen.
Ich habe im Access 2013 insgesamt drei Felder die ich miteinander vergleichen möchte. Ich will gerne, dass die jeweiligen Daten verglichen werden, wenn alle Werte in den Feldern gleich sind soll dieser Wert in einem neuen Feld wiedergegeben werden (Zielvariable). Sollten sich die Werte nicht entsprechen dann möchte ich, dass dies markiert wird, zB durch wiedergabe eines Datums das in der Zukunft liegt(dass ich im Anschluss das problemlos filtern kann). Sollten Nullwerte in einem der Felder stehen dann soll das beim Vergleich egal sein, also wenn zb zwei identische Werte (datum) eingetragen sind und ein Feld leer ist soll trotzdem das Datum wiedergegeben werden.
liebe Grüße und vielen Dank
Benjamin
Hallo,
warum hier noch mal ?
http://www.office-loesung.de/p/viewtopic.php?f=167&t=706954
Grossposting ist unerwünscht (siehe Regeln).
Ich kann die Beispieldaten nicht ansehen, habe nur Access2003 (MDB).
Allerding ist Deine Beschreibung hier und im anderen Forum nicht so richtig verständlich (zumindest für mich).
Ich konnte in dem anderen Forum die Daten leider nicht hochladen deshalb habe ich es hier nochmals hineingestellt.
Ich hab mal noch ein Screenshot von den Feldern gemacht. Sorry falls ich irgendetwas noch nicht ausführlich genug formuliert habe. Was hast du nicht verstanden?
liebe Grüße
Hallo,
ZitatIch konnte in dem anderen Forum die Daten leider nicht hochladen deshalb habe ich es hier nochmals hineingestellt.
wenn Du Dich im anderen Forum auch anmeldest (wie hier) kannst Du auch dort hochladen.
Was ist denn das Ziel der Aufgabe ?
Was sind das für 3 Datumsfelder ?
3 Datumsfelder die verglichen werden, sind fast immer ein Hinweis auf ein falsches Datenmodell.
Ausgangslage:
ich habe drei unterschiedliche Tabellen. In diesen Tabellen befinden sich jeweils Daten (die sich teilweise überschneiden) zu Personen . Es kann sein dass in manchen Feldern Werte vorkommen in manchen Feldern kommen keine Werte vor. Die Werte können (aufgrund von Fehler beim Eintragen in die Tabelle) sich teilweise in den unterschiedlichen Tabellen widersprechen obwohl es sich um die gleiche Person handelt.
In diesem Beispiel entspricht eine Spalte eine Person.
Datum-Feld:
Hier sind die Geburtsdaten der Personen eingetragen. "1 Datum" stammt ursprünglich aus Tabelle 1, "2 Datum" aus Tabelle 2, "3 Datum" aus Tabelle 3.
(Ich habe noch viele andere Variablen die ich auf diese Weise vergleichen möchte aber habe das Geburtsdatum mal als Beispiel genommen)
Ziel:
Ich will möglichst viele richtige Informationen erhalten. Wenn die Werte in den verschiedenen Felder nun gleich sind möchte ich das übernehmen in der neuen Variable (Zielvariable). Falls sich die Daten unterscheiden möchte ich mir das nochmal anschauen (und deshalb das Feld markieren).
Hallo,
willst Du nicht lieber das Datenmodell bereinigen ?
Wieso gibt es zu Personen 3 Tabellen ?
Wie unterscheiden sich die Tabellen (Feldnamen) ?
Was meinst du damit das Datenmodell bereinigen?
Eigentlich habe ich drei Subtabellen in Access importiert und die drei Subtabellen durch eine Sub ID mit einer Haupttabelle (In der sich die unterschiedlichen Sub IDs befinden die dann eindeutig einer Haupt ID zugeordnet sind. Die eigentlichen Werte der Variablen, also z.B. Geburtsdatum, Größe, etc stehen jedoch in den Subtabellen) in Beziehung gesetzt. Somit habe ich jetzt eine Abfrage für eine Variable erstellt (Geburtsdatum) die ich hier nun als Beispiel eingebracht habe.
3 Tabellen pro Person:
Die Daten zu den Personen wurden in unterschiedlichen Untersuchungen erhoben. Deshalb überschneiden diese sich teilweise. Hier soll jetzt eben herausgefunden werden welche Daten übereinstimmen und welche nicht um diese dann zu korrigieren.
Unterschied in den Tabellen:
Die Feldnamen (z.B. 1 Datum, 2 Datum, 3Datum) die im Endeffekt zusammengeführt werden sollen sind meistens in allen Tabellen vorhanden (manchmal auch nur in zwei).
Aber das wird recht kompliziert. Vielleicht ist es besser das anhand dieses Beispiels zu lösen und ich versuche das dann auf die anderen Fragestellungen zu übertragen.
Es soll am Ende quasi eine neue Tabelle entstehen die alle richtigen Werte aus allen SubTabellen enthält und nach Möglichkeit keine Fehler (sich nicht entsprechende Werte aus gleichen Feldern der unterschiedlichen Tabellen).
Hallo,
führe die 3 Tabellen zu einer Tabelle zusammen mit einem Kennzeichen aus welcher Untersuchung diese kommen.
Der Sinn der 3 Datumsfelder habe ich immer noch nicht verstadnen.
Weist Du nicht was ein Datenmodell ist ?
Eine Datenbank sollte zur ordnungsgemäßen Funktion nach den Normalisierungsregeln aufgebaut sein. Das ist mit Datenmodell gemeint.
Naja ganz genau das (die drei Tabellen zusammenführen) versuche ich ja zu tun. Allerdings muss ich dazu ja die Werte der unterschiedlichen Tabellen vergleichen. Was ich bislang nicht hinbekommen habe. Deshalb habe ich hier ja um Hilfe gesucht:) Einfach in Excel kann ich die Tabellen nicht zusammenführen da dies sehr unübersichtlich wird.
Es ist natürlich unsinnig, dass das Geburtsdatum dreimal vorhanden ist. Aber die Daten wurden wie gesagt in unterschiedlichen Untersuchungen erhoben, weshalb es eben vorkommen kann, dass identische Personen in den unterschiedlichen Subtabellen doppelt vorkommen. Deshalb soll ja gerade eine fertige Tabelle entstehen in der jedes Geburtsdatum (bzw jede weitere Variable) nur einmal aber richtig vorkommt. Daher muss ich die sich entsprechenden Felder der verschiedenen Tabellen vergleichen.
Hallo,
irgendwie habe ich das mit dem Datum immer noch nicht richtig verstanden.
Hast Du in jeder dieser 3 Tabellen jeweils drei Felder für das Geburtsdatum ?
Oder steht da nur ein Feld ?
Mit Tabellen zusammenführen, meinte ich jetzt einfach mal alle 3 Tabellen per Anfügeabfragen in eine Tabelle übertragen, mit einem Kennzeichen um welcher Untersuchung es geht (kann eine Zahl 1-3 sein).
Dann suchst Du in dieser Tabelle nach Duplikaten von Name und Geburtsdatum. Die Datensätze die keine Duplikate haben sind schon mal richtig.
Hi,
ich glaube es führt zu weit wenn ich an dieser Stelle erkläre wie genau meine Tabellen aufgebaut sind und weshalb ich sie nicht einfach wie von dir beschrieben zusammenführen kann.
Wenn möglich würde ich mich gerne auf das Beispiel konzentrieren.
Ich Suche nach einer Lösung (einem Code den ich später in die Zielvariable schreiben kann) nach dem Motto:
wenn feld "1 Datum" = "2 Datum" = "3 Datum" dann übernehme "1 Datum"
Wenn "1 Datum" =2 Datum ungleich "3 Datum" dann schreib 1.1.2050 (um das filtern und nochmal von Hand ansehen zu können)
Wenn"1Datum" leer ist und "2 Datum" = "3 Datum" dann schreibe "2 Datum".
Ist so etwas möglich?
und vielen Dank für eure Hilfe
Liebe Grüße
Hallo,
die Lösung ist lediglich eine Fleißarbeit, indem du alle Fälle mit Hilfe der Wenn-Funktion abhandelst - etwas besseres fällt mir dazu auch nicht ein.
BTW:
Sonderzeichen in Feldnamen solltest du vermeiden und ein Datenfeld ist keine "Variable".
Ok vielen Dank euch trotzdem