Juni 26, 2022, 18:53:34

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Zwei Datensätze in Access Formularansicht darstellen

Begonnen von ernie55, Februar 09, 2011, 19:15:52

⏪ vorheriges - nächstes ⏩

ernie55

Grüezi mitenand

Ich habe in Tabelle1 zu jedem unserer rund 7000 Kunden einen bisher genutzten Datensatz (ca. 30 Felder) .
Ein grosser Teil der Kunden wird nun die Daten erstmals online neu erfassen bzw. korrigieren. Diese Daten werden sukzessive in Tabelle2 abgelegt.

Aufgrund er Komplexität der technischen Angaben in der Tabelle muss ein Abgleich zwischen den beiden Tabellen "von Hand" erledigt werden. Der Entscheid ob nun z.B. Feld12 aus der Tabelle 1 oder Tabelle 2 endgültig verwendet werden soll kann und darf nicht automatisiert werden.

Die Felder (Namen, Anzahl) in beiden Tabellen sind identisch.
Die ID-Nummern sind beim gleichen Kunden in beiden Tabellen identisch. Zusätzlich zur eigentlichen ID-Nummer steht wenn nötig noch eine zweite, ebenfalls eindeutige Nummer zur Verfügung (die dem Kunden bekannte Kundennummer) .

Ich möchte nun in einem Formular (nicht Tabellen- oder Datenblattansich) die beiden zusammengehörenden Datensätze nebeneinanderstellen. Als Zückerchen möchte ich unterschiedliche Einträge im gleichen Kriterium (gleicher Feldname) farbig markieren. Somit könnte dann mittels drag&drop der gewünschte Eintrag in die "scharfe" Tabelle gezogen werden.

Die Datenblattansicht eignet sich dazu nur schlecht (zu viele Felder).

ACC 2007 unter Win XP

Schöne Grüsse aus dem sonnigen Appenzellerland

Ernst

database

Hallo,

obwohl es für die Lösung dieser Aufgabenstellung sicherlich auch andere Möglichkeiten gäbe, folgender Vorschlag.

Erstelle die neue Tabelle als Kopie der alten, nur Struktur übernehmen, Primärschlüssel KEIN Autowert sondern das ID-Feld als Zahl, Long Integer
Erstelle zwischen den Tabellen eine 1:1 Beziehung, definiere die Aktualisierzungsweitergabe.
Erstelle aufbauend auf der 'neuen' Tabelle ein Formular, ALLE Felder reinpacken.
Dann erstellst du ein Formular mit den Feldern der 'alten' Tabelle und holst das Formular der neuen Tabelle als Unterformular ins Form.

Nun hast du die Möglichkeit die Daten beider Tabellen 1:1 zu vergleichen bzw. zum alten Datensatz einen neuen zu erfassen, der auch die gleiche ID erhält.

Wenn du nun die Formularfelder im Unterformular mit einem Suffix oder Präfix 'N' (txtDeinFeldN oder NtxtDeinFeld) versiehst, kannst du die Felder auch in VBA-Code vernünftig ansprechen, mit Hilfe dessen du die farbliche Kennzeichnung durchführen kannst.
Dazu gibst du im Ereignis 'Beim Anzeigen des Unterformulars z.B. folgenden Code ein:


If Me!DeinFeldN <> Forms!Hauptformular!DeinFeld Then
       Me!DeinFeldN.BackColor = vbRed
   Else
       Me!DeinFeldN.BackColor = vbWhite
   End If


Diesen Code musst du natürlich für JEDES relevante Feld hier einbauen.

HTH

ernie55

Manchmal braucht nur einen Kick und schon machts klick

Mit der verknüpften Abfrage gehts auch ohne Unterformular. So können die korrespondierenden Felder direkt nebeneinander gesetzt werden.

Wenn man von Anfang an die Felder in einer sauberen Reihenfolge ablegt, ist es einfacher die Felder für die Colorierung direkt mit dem Index anzusprechen z.B.:

If Forms![F_BeideKunden].Controls(i).Value <> Forms![F_BeideKunden].Controls(i + FelderZahl).Value Then
  setze Farben ......

Herzlichen Dank für die rasche Hilfe

und nochmals sonnige Grüsse aus dem sonnigen Appenzellerland
Ernst