Efectivamente con tabledef, se puede determinar cuales son las tablas de la base de datos como se muestra en el código anexo.
Dim BucleTabla As TableDef
Set BaseDatos = DBEngine.Workspaces(0).OpenDatabase(StrArchivoEntrada)
Combo5.Clear
For Each BucleTabla In BaseDatos.TableDefs
Combo5.AddItem BucleTabla.Name
Next
Para los campos tendríamos algo como lo siguiente:
Dim tabla As Recordset
Dim BucleCampo As Field
Set tabla = BaseDatos.OpenRecordset("select * from [" & Combo5.Text & "]")
Combo1.Clear
For Each BucleCampo In tabla.Fields
Combo1.AddItem BucleCampo.Name
Next
Todo lo anterior haciendo uso del DAO, que quizá pueda resultar algo obsoleto.