[AccessD] Create A Table

Rocky Smolin rockysmolin at bchacc.com
Tue Jan 5 22:05:27 CST 2010


Good approach I think.  Thanks.

R 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel
Sent: Tuesday, January 05, 2010 7:13 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Create A Table

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)
>
 

--
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