说的明白一点
我想得到,数据库的所有表名。
access,excel

解决方案 »

  1.   

    不可以。
    ACCESS里可以用系统表mssysobjects,EXCEL有待研究。
      

  2.   

    可以实现,我在项目中用过没有问题
    请先在工程中引用 Microsoft SQLDMO Object Library 
    代码如下:Private Sub Form_Load()
    '-------------------------------------------------------------
    '获取服务器上所有数据库名并加载到组合框的方法
    On Error GoTo ON_ERROR
        Dim rsDB As New ADODB.Recordset
        Dim i As Integer
        cobDatabase.Clear
        i = 1
        Set rsDB = conServer.OpenSchema(adSchemaCatalogs)
        While Not rsDB.EOF
            cobDatabase.AddItem rsDB!CATALOG_NAME
            rsDB.MoveNext
            i = i + 1
        Wend
        cobDatabase.ListIndex = 1
        rsDB.Close
        Set rsDB = Nothing
    '-------------------------------------------------------------
    '附送获得所有服务器名称的方法
        Dim dom As SQLDMO.NameList
        Dim Server As New SQLDMO.Application
        Set dom = Server.ListAvailableSQLServers
        Dim i As Long
        For i = 1 To dom.Count
            cobSQLserverName.AddItem dom(i)
        Next i
    '    cobSQLserverName.ListIndex = cobSQLserverName.ListCount - 1
        Set Server = Nothing
        cobDatabase.Text = "SoupEvenFlowManage"
        GetServerName = True
        Exit Function
        
        
    ON_ERROR:
        MsgBox "错误代码:" & Err.Number & vbCrLf & _
                "错误描述:" & Err.Description, _
                vbInformation + vbOKOnly, "系统提示"
        Err.ClearEnd Function'注意自行设置连接字符串
      

  3.   

    '加一点注释
    SoupEvenFlowManage '为数据库名称
      

  4.   

    http://www.zdnet.com.cn/developer/rescnter/story/0,2000081634,39101251-2,00.htm
      

  5.   

    '工程->引用Microsoft ActiveX Data Objects 2.x Library Private Sub Command1_Click()
    Dim adoCN   As New ADODB.Connection                'Access的
    Dim strCnn   As New ADODB.Recordset
                 
       str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"
       adoCN.Open str1
             
       Set rstSchema = adoCN.OpenSchema(adSchemaTables)
         
       Do Until rstSchema.EOF
               out = out & "Table  name:  " & _
                   rstSchema!TABLE_NAME & vbCr & _
                   "Table  type:  " & rstSchema!TABLE_TYPE & vbCr
               rstSchema.MoveNext
       Loop
       rstSchema.Close
         
       adoCN.Close
    Debug.Print outEnd SubPrivate Sub Command2_Click()
    Dim adoCN   As New ADODB.Connection                'Excel的
    Dim strCnn   As New ADODB.Recordset
                 
       str1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & App.Path & "\Book1.xls;" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"
       adoCN.Open str1
             
       Set rstSchema = adoCN.OpenSchema(adSchemaTables)
         
       Do Until rstSchema.EOF
               out = out & "Table  name:  " & _
                   rstSchema!TABLE_NAME & vbCr & _
                   "Table  type:  " & rstSchema!TABLE_TYPE & vbCr
               rstSchema.MoveNext
       Loop
       rstSchema.Close
         
       adoCN.Close
    Debug.Print outEnd Sub
      

  6.   

    Dim conn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        conn.ConnectionString = "driver={microsoft excel driver (*.xls)};dbq=" & FileString
        conn.Open
        Set rstSchema = conn.OpenSchema(adSchemaTables)
        Dim TableName()
        Dim TableID
        TableID = 0
        Do Until rstSchema.EOF
            ReDim Preserve TableName(TableID)
            TableName(TableID) = rstSchema!TABLE_NAME
            TableID = TableID + 1
            rstSchema.MoveNext
        Loop
        
        rstSchema.Close
      

  7.   

    acess我会excil我不会。文件操作是我的弱项
    SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;
      

  8.   

    又学一招!
    原来怎么没注意这个OpenSchema?