[AccessD] Compare table structures

Jack and Pat drawbridgej at sympatico.ca
Fri Feb 13 08:30:03 CST 2009


AD and Arthur,

The extract of sample code has references to a Form. Also, the code as shown
does not deal with indexes. Just a quick observation.
jack 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D.Tejpal
Sent: Thursday, February 12, 2009 12:32 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Compare table structures

Arthur,

    Interestingly, this very topic came up in MS_Access_Professionals group
at Yahoo today. Extract of the routine suggested by Clive Williams is placed
below.

    You might like to try it out. (It has not yet been tested at my end).

Best wishes,
A.D. Tejpal
------------

' Extract of sample code (by Clive Williams) to compare 
' two tables. It compares the FieldTypes then displays the 
' Filenames and FieldTypes in the DebugWindow:
'======================================
Private Sub cmdCompareTableStructures_Click()
' Compare the FieldTypes of the source table and the specified table
Dim db      As DAO.Database
Dim tbli    As DAO.TableDef
Dim tblj    As DAO.TableDef
Dim i       As Integer
Dim booMismatch   As Boolean
On Error GoTo Err_cmdCompareTableStructures_Click

   If vbYes = MsgBox("Comparing Table Structures. Stop, Yes/No", 
vbYesNo + vbDefaultButton2) Then Stop
   Set db = CurrentDb
   Set tbli = db.TableDefs(Me.RecordSource)

   Set tblj = db.TableDefs(Me.cboTables.Column(0)) (from ComboBox)
Debug.Print "Tables: "; tbli.Name & "  " & tblj.Name
   If tbli.Fields.Count <> tblj.Fields.Count Then
      MsgBox tbli.Name & " has " & tbli.Fields.Count & _
            " fields" & vbCrLf & vbCrLf & _
            tblj.Name & " has " & tblj.Fields.Count & _
            " fields." & vbCrLf & " Quitting..."
   Else   
      For i = 0 To tbli.Fields.Count - 1
         Debug.Print "Names", tbli.Fields(i).Name, _
             tblj.Fields(i).Name, ;
         Debug.Print "Types", tbli.Fields(i).Type, _
            tblj.Fields(i).Type
         If tbli.Fields(i).Type <> tblj.Fields(i).Type Then
            Debug.Print "", "", "", "   Mismatch>", "***", "***"
            booMismatch = True
         End If
      Next i
      If booMismatch Then
         DoCmd.RunCommand acCmdDebugWindow
      Else
         MsgBox "Compared Successfully."
      End If
   End If

Exit_cmdCompareTableStructures_Click:
   Set tblj = Nothing
   Set tbli = Nothing
   Set db = Nothing
   Exit Sub
Err_cmdCompareTableStructures_Click:
   MsgBox Err.Description
   Resume Exit_cmdCompareTableStructures_Click
End Sub
'========================================

  ----- Original Message ----- 
  From: Arthur Fuller 
  To: Access Developers discussion and problem solving 
  Sent: Thursday, February 12, 2009 15:48
  Subject: [AccessD] Compare table structures


  Is there a free tool that will compare two table structures and report the
  differences? I'd do it manually but in this case there are over 100 fields
  and it would be very tedious to do it by hand.

  TIA,
  Arthur
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list