Public Function getSameFields(tblOne As String, tblTwo As String) As String
Dim db As DAO.Database
Dim strDocument As String
Dim tdf1 As DAO.TableDef
Dim tdf2 As DAO.TableDef
Dim fld1 As DAO.Field
Dim fld2 As DAO.Field
Set db = CurrentDb
Set tdf1 = db.TableDefs(tblOne)
Set tdf2 = db.TableDefs(tblTwo)
strDocument = "TABLE ONE: " & tblOne & " TABLE TWO: " & tblTwo & vbCrLf & vbCrLf
strDocument = strDocument & "Fields the Same:" & vbCrLf
For Each fld1 In tdf1.Fields
For Each fld2 In tdf2.Fields
If fld2.Name = fld1.Name Then
strDocument = strDocument & " " & fld1.Name & " " & fld2.Name & vbCrLf
End If
Next fld2
Next fld1
getSameFields = strDocument
End Function
Public Function getInOneNotInTwo(tblOne As String, tblTwo As String) As String
Dim db As DAO.Database
Dim strDocument As String
Dim tdf1 As DAO.TableDef
Dim tdf2 As DAO.TableDef
Dim fld1 As DAO.Field
Dim fld2 As DAO.Field
Dim blnFound As Boolean
Set db = CurrentDb
Set tdf1 = db.TableDefs(tblOne)
Set tdf2 = db.TableDefs(tblTwo)
strDocument = "TABLE ONE: " & tblOne & " TABLE TWO: " & tblTwo & vbCrLf & vbCrLf
strDocument = strDocument & "Fields in " & tblOne & " not in " & tblTwo & vbCrLf
For Each fld1 In tdf1.Fields
blnFound = False
For Each fld2 In tdf2.Fields
If fld2.Name = fld1.Name Then
blnFound = True
End If
Next fld2
If Not blnFound Then
strDocument = strDocument & " " & fld1.Name & vbCrLf
End If
Next fld1
getInOneNotInTwo = strDocument
End Function
Public Function getInTwoNotInOne(tblOne As String, tblTwo As String) As String
Dim db As DAO.Database
Dim strDocument As String
Dim tdf1 As DAO.TableDef
Dim tdf2 As DAO.TableDef
Dim fld1 As DAO.Field
Dim fld2 As DAO.Field
Dim blnFound As Boolean
Set db = CurrentDb
Set tdf1 = db.TableDefs(tblOne)
Set tdf2 = db.TableDefs(tblTwo)
strDocument = "TABLE ONE: " & tblOne & " TABLE TWO: " & tblTwo & vbCrLf & vbCrLf
strDocument = strDocument & "Fields in " & tblTwo & " not in " & tblOne & vbCrLf
For Each fld2 In tdf2.Fields
blnFound = False
For Each fld1 In tdf1.Fields
If fld2.Name = fld1.Name Then
blnFound = True
End If
Next fld1
If Not blnFound Then
strDocument = strDocument & " " & fld2.Name & vbCrLf
End If
Next fld2
getInTwoNotInOne = strDocument
End Function
Public Sub test()
Debug.Print getSameFields("Shippers", "Shippers2")
Debug.Print getInOneNotInTwo("shippers", "Shippers2")
Debug.Print getInTwoNotInOne("Shippers", "Shippers2")
End Sub