Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Tabellen vergleichen in Access 2007 mit VBA
zurück: Abfrage mit Vorjahresvergleich weiter: Addition von Mittelwerten Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Jul 2010, 10:21
Rufname:

Tabellen vergleichen in Access 2007 mit VBA - Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Hallo,

ich habe gerade die Aufgabe bekommen Tabellen zu verlgeichen.

Zwei Tabellen sollen miteinander verglichen werden, die die selbe Struktur haben (gleiche Spaltenanzahl)

Die zwei (alter und neuer Stand) Tabellen sollen geprüft werden:
- gibt es gleiche Daten beiden Tabellen
- was ist in der neuen dazu gekommen
- was hat sich in der neuen zur alten Tabelle geändert
- was wurde gelöscht

Es soll dazu eine Benutzerführung geben und es soll am Ende das Ergebnis sichtbar sein was sich geändert hat, was neu ist und was gelöscht wurde.

Hat jemand eine Idee von euch?

Die gleichen Daten rauszufinden ist ja okay, aber diese dann in eine neue Tabelle zu schreiben klappt bei mir leider nicht:(

Hier mal mein erster Versuch:
Die Tabelle gleicheDaten habe ich bereits angelegt in Access - nicht über Code.
Tabelle1 und Tabelle2 sind ebenfalls vorhanden.
Code:
Sub insert()
    Dim db As DAO.Database
    Dim sql As String
   
    Set db = CurrentDb
    sql = "SELECT Tabelle1.Termin AS Tabelle1_Termin" _
             & ", Tabelle1.Bemerkung AS Tabelle1_Bemerkung" _
             & ", Tabelle2.Termin AS Tabelle2_Termin" _
             & ", Tabelle2.Bemerkung AS Tabelle2_Bemerkung" _
         & " INTO gleicheDaten" _
         & " FROM Tabelle1" _
              & " INNER JOIN Tabelle2" _
              & " ON  (Tabelle1.Bemerkung=Tabelle2.Bemerkung)" _
              & " AND (Tabelle1.Termin=Tabelle2.Termin);"
MsgBox sql
End Sub
Sinister
Access-Programmierer


Verfasst am:
07. Jul 2010, 15:42
Rufname:


AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Hallo,

Die Tabelle 'gleicheDaten' brauchst du nicht, dafür bastelt man eine Abfrage. Wenn die Tabellen IDs haben (und das sollen sie), kann man damit neue und gelöschte Datensätze kinderleicht ermitteln.
Um die Änderungen zu verfolgen eignet sich ein Formular am besten: man platziert die Datensätze beieinander. Mit bedingter Formatierung kann man einzelne Felder hervorheben.

_________________
Warum einfach, wenn es kompliziert geht!?
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
08. Jul 2010, 08:58
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Hi,

also die zwei Tabellen, die verglichen werden sollen, werden erst in Access eingelesen und haben noch keine ID. Diese müsste ich in Access anfügen.

Puh, sorry so fit bin ich in Access nicht, kannst du mir die Vergleichsabfragen etwas erläutern?
Die einzelnen Felder wie Termine sollen auch abgefragt werden, da man das Datum auch ändern kann. z.B. Tabelle1 2.2.2010 zu Tabelle2 30.4.2010

Meinst du mit
Zitat:
Die Tabelle 'gleicheDaten' brauchst du nicht, dafür bastelt man eine Abfrage.


dass ich eine Abfrage mache und in der Datenblattansicht sieht man das Ergebnis?

Danke
Sinister
Access-Programmierer


Verfasst am:
08. Jul 2010, 09:59
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Ja, in Datenblattansicht sieht man das Ergebnis. Sämtliche Eingaben müssen aber nur über Formulare erfolgen! Benutzer sollen nie Abfragen oder Tabellen öffnen.
Für die Abfrage (genau so für die Tabelle "gleichDaten") muss du aber sicherstellen, welcher Datensatz in Tab1 dem Datensatz in Tab2 entspricht. Wenn jedes Feld in der jetzigen Tabellen sich ändern kann, brauchst du unbedingt eine ID.

_________________
Warum einfach, wenn es kompliziert geht!?
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
08. Jul 2010, 10:10
Rufname:


AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Ok, das mit der ID sollte machbar sein,
dass ich dann die ID an die Tabelle in einer neuen Spalte anfüge.

Meine Testdatenbank hat schon eine Spalte mit ID.

Kannst du mir die Abfrage mal erläutern?
Wo frage ich dann die ID ab?

Die Tabellen können auch unterschiedliche Anzahl an Zeilen haben... (DS kam dazu oder wurde gelöscht)
Sinister
Access-Programmierer


Verfasst am:
08. Jul 2010, 11:25
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Im Assistenten wählst du die beide Tabellen, verknüpfst mit ID und wählst aus jeder alle Spalten (*), das war es. Schwierig wird die ID-Vergabe, die müssen nämlich übereinstimmen:
1) ID nur in der Tabelle 'gesichrter Datenstand': wird gelöscht
2) ID nur in der Tabelle 'aktuelle Änderungen': wird hinzugefügt
3) ID in beiden Tabellen vorhanden: hier sollen Änderungen gesucht/visualisiert werden.

_________________
Warum einfach, wenn es kompliziert geht!?
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
08. Jul 2010, 13:57
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Hier mal von meiner Testdatenbank eine Abfrage zur Suche nach Änderungen:

Code:

SELECT Tabelle1.*, Tabelle2.*
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.ID = Tabelle2.ID
WHERE
Tabelle1.Name<>Tabelle2.Name
OR
Tabelle1.Termin <> Tabelle2.Termin
OR
Tabelle1.Bemerkung <> Tabelle2.Bemerkung


ich erhalte dann 3 Ergebnisse:
Tabelle1.ID Tabelle1.name Tabelle1.Termin Tabelle1.Bemerkung Tabelle2.ID Tabelle2.name Tabelle2.Termin Tabelle2.Bemerkung
2 willi 01.10.2010 ulm 2 willi 31.12.2010 ulm
3 otto 04.02.2010 hamburg 3 otto 04.02.2010 nürnberg
4 jens 01.12.2009 nürnberg 4 jens 01.12.2010 nürnberg



allerdings benötige ich auch noch eine abfrage dafür, was hinzugekommen ist.
z.B. in tabelle1 steht eine ID 5 drin.

die IDs sollen ja beim Einlesen in Access vergeben werden.
Das ist dann aber glaube ich nicht so einfach, da ja auch mal ein Datensatz aus der Tabelle gelöscht werden kann und dann stimmt ja das mit der ID nicht.
Bsp:
Tabelle1 hat IDs 1, 2, 3, 4 (alter Stand)
und in Tabelle wurde die ID 2 gelöscht und nun rutscht der Inhalt der ID 3 in ID 2.
Sinister
Access-Programmierer


Verfasst am:
08. Jul 2010, 15:02
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Die IDs rutschen nicht, es bleiben 1, 3 und 4 (als nächste wird 5 vergeben). Sonst ist es nur eine Laufnummer.
Mit "LEFT JOIN" bekommt man alle Datensätze einer der Tabellen (neue oder gelöschte), für beide gleichzeitig musste man tricksen.

_________________
Warum einfach, wenn es kompliziert geht!?
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. Jul 2010, 08:57
Rufname:

AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Naja, das mit den IDs ist nicht so.
Bei jedem Vergleich der zwei Exceldateien werden die Tabellen in Access eingelesen.
Und dann kann sich ja was verändern.

Z.B.
Exceltabelle1 hat folgenden Inhalt:
Name Bemerkung
Hans München
Otto Nürnberg
Karl Köln

Exceltabelle2
Name Bemerkung
Hans München
Karl Köln

Der Otto wurde schon in der Exceltabelle gelöscht.
In Access sieht es dann so aus wenn die IDs hinzugefügt wurden:
Tabelle1
1 Hans MÜnchen
2 Otto Nürnberg
3 Karl Köln

Tabelle2
1 Hans MÜnchen
2 Karl Köln

Und dann kann ich ja den Inhalt schlecht vergleichen....

Hmmm, echt schwer das ganze umzusetzen.
Sinister
Access-Programmierer


Verfasst am:
12. Jul 2010, 09:54
Rufname:

Re: AW: Tabellen vergleichen in Access 2007 mit VBA - Re: AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

Sinister - 08. Jul 2010, 09:59 hat folgendes geschrieben:
...muss du aber sicherstellen, welcher Datensatz in Tab1 dem Datensatz in Tab2 entspricht.

D.h. Karl in Tabelle2 bekommt ID = 3.

_________________
Warum einfach, wenn es kompliziert geht!?
vba-neu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
13. Jul 2010, 10:24
Rufname:


AW: Tabellen vergleichen in Access 2007 mit VBA - AW: Tabellen vergleichen in Access 2007 mit VBA

Nach oben
       Version: Office 2007

und wie funktioniert das?

Zitat:
Sinister - 08. Jul 2010, 09:59 hat folgendes geschrieben:
...muss du aber sicherstellen, welcher Datensatz in Tab1 dem Datensatz in Tab2 entspricht.


Wie kann ich das sicherstellen?

(wenn man die Tabelle nicht einlesen würde, dann wäre es ja über die IDs leicht machbar... aber leider sollen zwei unterschiedliche Zeitpunkte der Exceldateien verglichen werden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: mehrere Tabellen zusammenfassen 3 woerny01 1280 10. Aug 2004, 16:22
woerny01 mehrere Tabellen zusammenfassen
Keine neuen Beiträge Access Tabellen & Abfragen: 2 Tabellen verknüpfen 1 Micky1409 872 08. Jul 2004, 13:12
stpimi 2 Tabellen verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: daten in 2 tabellen speichern 1 Gast 1178 09. Jun 2004, 10:58
mabe38 daten in 2 tabellen speichern
Keine neuen Beiträge Access Tabellen & Abfragen: 2 tabellen verknüpfen und daten übergeben 5 mihca 2004 05. Jun 2004, 13:22
mihca 2 tabellen verknüpfen und daten übergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Frontend und Backend: kann nicht auf die Tabellen zugreifen 1 mhw 803 25. Mai 2004, 12:25
Robsl Frontend und Backend: kann nicht auf die Tabellen zugreifen
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Tabellen zusammenfügen und Nullwerte überschreiben 1 m.hataj 1304 13. Mai 2004, 18:10
faßnacht(IT); Zwei Tabellen zusammenfügen und Nullwerte überschreiben
Keine neuen Beiträge Access Tabellen & Abfragen: kriterium - datensatz nur in einer von zwei tabellen 3 budking82 1000 11. Mai 2004, 12:59
budking82 kriterium - datensatz nur in einer von zwei tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen verknüpfen ( Excel & Access ) 1 Isa 1380 29. Apr 2004, 17:45
BufferOverflow2 Tabellen verknüpfen ( Excel & Access )
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage erstelen, die zwei tabellen vergleicht 2 pucky 802 27. Apr 2004, 10:53
ProLogistik Abfrage erstelen, die zwei tabellen vergleicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage über mehrere Tabellen 6 Martin1977 976 02. Apr 2004, 15:43
Martin1977 Abfrage über mehrere Tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: datensatz aus mehreren Tabellen im formular anzeigen 1 SixPack 1197 29. März 2004, 10:53
Willi Wipp datensatz aus mehreren Tabellen im formular anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme