PDA

Vollständige Version anzeigen : Spalten-Namen in 2 Tabellen vergleichen und Unterschiede ausgeben


Nelix
26.03.2006, 17:19
Hallo Zusammen

Habe folgendes Problem:

Ich habe 2 Tabellen, eine mit 218 und eine mit 220 Spalten, nun möchte ich mir gerne ausgeben lassen, welche Spalten in der kleineren Tabelle fehlen.
da gibt es doch sicher eine Möglichkeit?

Vielen Dank im Voraus und Grüsse

Nelix

Großer Meister
26.03.2006, 17:40
so findest du die Spaltennamen raus, die in der kleineren Tabelle fehlen:
Dim rs1 as recordset, rs2 as recordset, i as long, j as long
Dim blnFehlt as Boolean
set rs1=currentdb.openrecordset(Tabelle1)
set rs2=currentdb.openrecordset(Tabelle2) 'kleinere Tabelle
for i=0 to rs1.fields.count-1
blnFehlt=true
for j=0 to rs2.field.count-1
if rs1(i).name=rs2(j).name then
blnFehlt=false: exit for
endif
next j
if blnFehlt then msgbox "Feld " & rs1(i).name & " fehlt in Tabelle2"
next i

Nouba
26.03.2006, 17:55
So könnte ein Ansatz lauten, wobei man das Spielchen vielleicht auch noch in die umgekehrte Richtung betreiben muß.
Dim sMissing() As String
Dim db As DAO.Database
Dim f1 As DAO.Fields
Dim f2 As DAO.Fields
Dim i As Long
Dim j As Long
Dim bEqual As Boolean

Set db = CurrentDb()
Set f1 = db.TableDefs("Tabelle1").Fields
Set f2 = db.TableDefs("Tabelle2").Fields

For i = 0 To f1.Count -1
bEqual = False
For j = 0 To f2.Count - 1
If f(i).Name = f(j).Name Then
bEqual = True
Exit For
End If
If bEqual Then
Redim Preserve sMissing(i)
sMissing(i) = f2(j).Name
End If
Next j
Next i
If UBound(sMissing) >= LBound(sMissing) Then
MsgBox "Fehlende Felder in Tabelle1: " & Join(sMissing, ", ")
End If

Nelix
26.03.2006, 18:00
Hallo Markus

Alle Daumen Hoch!!!!! Das hat mir hier echt mein WE gerettet! :top: :top: :top:

Ganz grossen DANK!!! besonders am Sonntag ;)


ups, habe doch glatt Noubas Lösung übersehen! Auch Dir grossen Dank - sozusagen beiden "Access - Meistern"!