[AccessD] Deconstructing Tables

Michael R Mattys mmattys at rochester.rr.com
Tue Feb 28 07:24:09 CST 2006


Sub DescribeAllTables()
    Dim db As DAO.Database, tdf As DAO.TableDef
    Dim test As String
    Set db = CurrentDb

        For Each tdf In db.TableDefs
            test = DescribeTbl(db, tdf.Name)
            Debug.Print tdf.Name & " " & test
        Next

    Set db = Nothing
End Sub

Private Function DescribeTbl(db As DAO.Database, tdfName As String) As 
String
    Dim tdf As DAO.TableDef, fld As DAO.Field, strSQL As String
        'Set db = CurrentDb
        Set tdf = db.TableDefs(tdfName)
        If GetTableType(tdf.Attributes) <> "System Table" And 
GetTableType(tdf.Attributes) <> "Hidden(temporary)" Then
            'Debug.Print tdf.Name & ": " & GetTableType(tdf.Attributes)
            For Each fld In tdf.Fields
                strSQL = strSQL & "[" & fld.Name & "] " & 
getPropertyTypeName(fld.Type) & ", "
            Next
            strSQL = Left(strSQL, Len(strSQL) - 2)
        End If
        'Debug.Print strSQL
    DescribeTbl = strSQL
    Set fld = Nothing
    Set tdf = Nothing
End Function

Private Function GetTableType(T As Long)
    Select Case T
        '65536
        Case dbAttachExclusive
            GetTableType = "Linked, Exclusive"
        '131072
        Case dbAttachSavePWD
            GetTableType = "Saves UID,Pwd for linked table."
        '-2147483646 + 2
        Case (dbSystemObject And 2), (dbSystemObject - 2)
            GetTableType = "System Table"
        '2147483646 + 1
        Case (dbHiddenObject And 1)
            GetTableType = "Hidden(temporary)"
        '1073741824
        Case dbAttachedTable
            GetTableType = "Linked, non-ODBC"
        '536870912
        Case dbAttachedODBC
            GetTableType = "Linked, ODBC"
    End Select

End Function

Private Function getPropertyTypeName(T As Integer)
        'Case "Parameter", "Property"
            Select Case T
                Case dbBigInt
                    getPropertyTypeName = "Big Integer"
                Case dbBinary
                    getPropertyTypeName = "Binary"
                Case dbBoolean
                    getPropertyTypeName = "YesNo"
                Case dbByte
                    getPropertyTypeName = "Byte"
                Case dbChar
                    getPropertyTypeName = "Char"
                Case dbCurrency
                    getPropertyTypeName = "Currency"
                Case dbDate
                    getPropertyTypeName = "DateTime"
                Case dbDecimal
                    getPropertyTypeName = "Decimal"
                Case dbDouble
                    getPropertyTypeName = "Double"
                Case dbFloat
                    getPropertyTypeName = "Float"
                Case dbGUID
                    getPropertyTypeName = "Guid"
                Case dbInteger
                    getPropertyTypeName = "Integer"
                Case dbLong
                    getPropertyTypeName = "Long"
                Case dbLongBinary
                    getPropertyTypeName = "Long Binary (OLE Object)"
                Case dbMemo
                    getPropertyTypeName = "Memo"
                Case dbNumeric
                    getPropertyTypeName = "Numeric"
                Case dbSingle
                    getPropertyTypeName = "Single"
                Case dbText
                    getPropertyTypeName = "Text"
                Case dbTime
                    getPropertyTypeName = "Time"
                Case dbTimeStamp
                    getPropertyTypeName = "Time Stamp"
                Case dbVarBinary
                    getPropertyTypeName = "VarBinary"
            End Select
End Function

Michael R. Mattys
MapPoint Developer
www.mattysconsulting.com

----- Original Message ----- 
From: "Bryan Carbonnell" <carbonnb at gmail.com>
To: "Access Developers discussion and problem solving" 
<accessd at databaseadvisors.com>
Sent: Tuesday, February 28, 2006 7:56 AM
Subject: [AccessD] Deconstructing Tables


> Does anyone know of any tool(s) that will go through the tables in and
> A2K MDB and return the DDL statement to build the table?
>
> What I'm trying to do is do a test port of an application that I have
> written in Access to OpenOffice.org Base and instead of rebuilding the
> tables by hand one by one, I thought I'd try the DDL route.
>
> --
> Bryan Carbonnell - carbonnb at gmail.com
> Life's journey is not to arrive at the grave safely in a well
> preserved body, but rather to skid in sideways, totally worn out,
> shouting "What a great ride!"
> -- 
> 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