从Access获取数据VBA工作表名称

时间:2014-06-17 08:17:24

标签: excel vba excel-vba ms-access

我从访问数据库中获取表/表的名称时遇到了问题。

我想这是因为函数 opendatabase 。当我使用这个方法时,我得到一个文件名作为输出的工作表对象。

我不知道如何从此访问文件中获取正在加载的表的名称。此程序的目的是将所有表的名称从访问文件到Excel文件。

    Sub CleanGoodVersion()

        GetDataFromETAPWorkbook = ActiveWorkbook.Name
        selection_dossier = ""
        Dim NameOfSheet As String
        Dim directory As String
        directory = Range("C6").Text

        ActiveSheet.Range("L2:L500").Select
        Selection.ClearContents

        For compteur = 1 To Sheets("Feuil1").Range("C7").Value Step 1
            selection_dossier = selection_dossier & "{down},"
            SendKeys selection_dossier & "{enter}", False
            Workbooks.OpenDatabase (directory)
            DatebaseWorkbook = ActiveWorkbook.Name '
            NameOfSheet = ActiveSheet.Name
            ' copy table from database
            'toto.Select ' it' s for check out names of files
             Workbooks(DatebaseWorkbook).Activate

            Cells(1, 1).Select
            Range(Selection, Selection.End(xlDown)).Select
            Range(Selection, Selection.End(xlToRight)).Select
            Selection.Copy
            ....................

            Application.DisplayAlerts = False
            Workbooks(DatebaseWorkbook).Close
            SaveChanges = True

        Next compteur

   End Sub

1 个答案:

答案 0 :(得分:0)

不确定这个是否可以完成OpenDatabase,但如果可以,那么它可能是这样的:

 Workbooks.OpenDatabase Filename:="yourAccessDB.mdb", _ 
 CommandText:="Select s.Name From MSySObjects As s Where s.Type=1", _ 
 CommandType:=xlCmdSql, _ 
 BackgroundQuery:=False, _ 
 ImportDataAs:=xlQuery 

我现在无法测试它,但是,如果这样做,那么它应该返回一个包含Access MDB中所有表名的工作簿。