[AccessD] Create A Table

Steve Schapel miscellany at mvps.org
Tue Jan 5 21:12:48 CST 2010


Rocky,

I would make the table temporarily in the Frontend file.  Then your code can 
export this table to the backend, and delete it from the frontend.  Some 
sample "air" code:

' ----------------
    Dim dbsBE As DAO.Database
    Dim dbs as DAO.Database
    Dim BEPath As String
    Dim AlreadyLinked As Boolean
    Dim AlreadyInBE As Boolean

    Set dbs = DBEngine(0)(0)
    BEPath = Mid(dbs.TableDefs("OneOfMyTables").Connect, 11)

    For Each tdf In dbs.TableDefs
        If tdf.Name = "MyNewTable" Then
            AlreadyLinked = True
            Exit For
        End If
    Next tdf

    If AlreadyLinked Then
        ' nothing to do
    Else
        Set dbsBE = OpenDatabase(BEPath)
        For Each tdf In dbsBE.TableDefs
            If tdf.Name = "MyNewTable" Then
                AlreadyInBE = True
                Exit For
            End If
        Next tdf

        If AlreadyInBE Then
            ' do nothing
        Else
            DoCmd.TransferDatabase acExport, "Microsoft Access", BEPath, 
acTable, "MyNewTable_Local", "MyNewTable", True

            Set rln = dbsBE.CreateRelation("AnotherMyNewTable")
            With rln
                .Table = "AnotherTable"
                .ForeignTable = "MyNewTable"
                .Attributes = dbRelationUpdateCascade + 
dbRelationDeleteCascade
                Set fld = .CreateField("FieldForRelationship")
                fld.ForeignName = "FieldForRelationship"
                .Fields.Append fld
            End With

            dbsBE.Relations.Append rln

        End If
        DoCmd.TransferDatabase acLink, "Microsoft Access", BEPath, acTable, 
"MyNewTable", "MyNewTable"
        DoCmd.DeleteObject acTable, "MyNewTable_Local"

        dbsBE.Close
    End If

    dbs.Close
    Set dbsBE = Nothing
    Set dbs = Nothing

' --------------------

Regards
Steve


--------------------------------------------------
From: "Rocky Smolin" <rockysmolin at bchacc.com>
Sent: Wednesday, January 06, 2010 2:12 PM
To: "'Access Developers discussion and problem solving'" 
<accessd at databaseadvisors.com>
Subject: [AccessD] Create A Table

> Dear List:
>
> I need to create a table in the back end, populate it with a couple of
> fields, set the primary index, set one of the fields as the FK to a PK in
> another table, and link the table to the front end.  I need to do this 
> from
> code behind a form IN the front end.
>
> I could cobble this together from bits of stuff I have, but, among all the
> Access sites that are out there, maybe someone knows of a page with this
> very thing on it, or a close approximation.
>
> Yes?
>
> Or I could go on site to do this which would cost the user an hour of my
> travel time but that might be cheaper than doing the code unless there's
> something that I can put together quickly. (Also hate to go out driving
> around if I can avoid it)
>
 




More information about the AccessD mailing list