Public Function GetTableNamesDAO(ByVal strDatabase As String) As String()
'requires reference to DAO object library
Dim straTableNames() As String
Dim db As DAO.Database
Dim lngLoop As Long
Set db = DBEngine.OpenDatabase(strDatabase)
ReDim straTableNames(db.TableDefs.Count - 1)
For lngLoop = 0 To db.TableDefs.Count - 1
straTableNames(lngLoop) = db.TableDefs(lngLoop).Name
Next lngLoop
db.Close
GetTableNamesDAO = straTableNames
End Function
Public Sub TestGetTableNamesDAO()
'used for testing within Access - will need modification for VB
Dim straTableNames() As String
Dim lngLoop As Long
straTableNames = GetTableNamesDAO(CurrentProject.FullName)
For lngLoop = LBound(straTableNames) To UBound(straTableNames)
Debug.Print straTableNames(lngLoop)
Next lngLoop
End Sub
Public Function GetTableNamesADOX(ByVal TheConnection As ADODB.Connection)
As String()
'requires references to ADODB and ADOX object libraries
Dim straTableNames() As String
Dim cat As ADOX.Catalog
Dim lngLoop As Long
Dim boolOpenedConnection As Boolean
If TheConnection.State <> adStateOpen Then
TheConnection.Open
boolOpenedConnection = True
End If
Set cat = New ADOX.Catalog
cat.ActiveConnection = TheConnection
ReDim straTableNames(cat.Tables.Count - 1)
For lngLoop = 0 To cat.Tables.Count - 1
straTableNames(lngLoop) = cat.Tables(lngLoop).Name
Next lngLoop
GetTableNamesADOX = straTableNames
If boolOpenedConnection Then
TheConnection.Close
End If
End Function
Public Function TestGetTableNamesADOX()
'used for testing within Access - will need modification for VB
Dim straTableNames() As String
Dim lngLoop As Long
straTableNames = GetTableNamesADOX(CurrentProject.Connection)
For lngLoop = LBound(straTableNames) To UBound(straTableNames)
Debug.Print straTableNames(lngLoop)
Next lngLoop
End Function
--
Brendan Reynolds
"Mlaky" <ml************@email.htnet.hr> wrote in message
news:c0**********@ls219.htnet.hr...
I'm using VB and I need to get all table names in database. How can I do
that?
Thank you.