rfedyk
asked on
RecordSource and external MDB table
I want a form's RecordSource to be a table from an external MDB. What is the syntax to achieve this?
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
On Open, run this code
Private Sub Form_Open(Cancel As Integer)
DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\SomePath\SomeDB.MDB", acTable, "<SourceTableName>", "<LocalTableName>"
End Sub
Then, if you only want to use the table, but not keep it,
Private Sub Form_Close()
Dim d as Database
Set d = CurrentDB
d.tableDefs.Delete "<LocalTableName>"
End Sub
Brian
Private Sub Form_Open(Cancel As Integer)
DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\SomePath\SomeDB.MDB", acTable, "<SourceTableName>", "<LocalTableName>"
End Sub
Then, if you only want to use the table, but not keep it,
Private Sub Form_Close()
Dim d as Database
Set d = CurrentDB
d.tableDefs.Delete "<LocalTableName>"
End Sub
Brian
ASKER
Believer:
Thanks again
MikeRenz:
I'm going to use Believer's suggestion because there are over 70 tables from different MDB that are needed for this application. I'll use your suggestion in the future so I'm going to post a "Points for MikeRenz" question.
BrianWren:
Sorry buddy, Mike got there before you
Thanks again
MikeRenz:
I'm going to use Believer's suggestion because there are over 70 tables from different MDB that are needed for this application. I'll use your suggestion in the future so I'm going to post a "Points for MikeRenz" question.
BrianWren:
Sorry buddy, Mike got there before you
I didn't realize you wanted every table. Here is some good code for linking every table from another database...
Private Sub AttachAllTables(MyPath a String)
Dim MyDatabase As Database
Dim tdf As TableDef
Dim ReturnValue As Integer
Set MyDatabase = DBEngine.OpenDatabase(MyPa th) ' Open database.
For Each tdf In MyDatabase.TableDefs
If tdf.Attributes And dbSystemObject Then
Else
ReturnValue = SysCmd(SYSCMD_SETSTATUS, "Linking Table " & tdf.name)
DoCmd.TransferDatabase acLink, "Microsoft Access", MyPath, acTable, tdf.name, tdf.name
End If
Next
ReturnValue = SysCmd(SYSCMD_REMOVEMETER)
Private Sub AttachAllTables(MyPath a String)
Dim MyDatabase As Database
Dim tdf As TableDef
Dim ReturnValue As Integer
Set MyDatabase = DBEngine.OpenDatabase(MyPa
For Each tdf In MyDatabase.TableDefs
If tdf.Attributes And dbSystemObject Then
Else
ReturnValue = SysCmd(SYSCMD_SETSTATUS, "Linking Table " & tdf.name)
DoCmd.TransferDatabase acLink, "Microsoft Access", MyPath, acTable, tdf.name, tdf.name
End If
Next
ReturnValue = SysCmd(SYSCMD_REMOVEMETER)
ooops...make that: MyPath As String
and at the end add: End Sub
sorry for not double checking before posting.
and at the end add: End Sub
sorry for not double checking before posting.
DoCmd.TransferDatabase acLink, "Microsoft Access", MyMDB, acTable, MyTableName1, MyTableName2
where MyMDB is a string representing a path to you databas, MyTableName1 is the name of the table linking to in your database, and MyTableName2 is what you want to name the table in your current database.
From there you can get your recordsource from you newly linked table.