VB的源码。VB和Delphi的ADO是一样的。
把下面的代码改一下就可以了
另:代码源自ADO帮助。该范例使用 OpenSchema 方法显示 Pubs 数据库内每个表的名称和类型。
Public Sub OpenSchemaX()
   Dim cnn1 As ADODB.Connection
   Dim rstSchema As ADODB.Recordset
   Dim strCnn As String
   Set cnn1 = New ADODB.Connection
   strCnn = "Provider=sqloledb;" & _
      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;"
   cnn1.Open strCnn
   Set rstSchema = cnn1.OpenSchema(adSchemaTables)
   
   Do Until rstSchema.EOF
      Debug.Print "Table name: " & _
       rstSchema!TABLE_NAME & vbCr & _
       "Table type: " & rstSchema!TABLE_TYPE & vbCr
       rstSchema.MoveNext
   Loop
   
   rstSchema.Close
   cnn1.Close
End Sub

解决方案 »

  1.   

    用TSession的函数GetTableNames():
    GetTableNames(const AnsiString DatabaseName, const AnsiString Pattern, bool Extensions, bool SystemTables, Classes::TStrings* List);
      

  2.   

    用BDE得到(一个方法)
    procedure TfmCreate.GetTbNames;
    var
      List:TStringList;
      i:integer;
    begin
      List:=TStringList.Create;
      try
        fmConnectToDataBse.Session1.GetTableNames(DtBsName,'*.*',false,false,List);
        cbTbNames.Items.Clear;
        for i:=0 to List.Count-1 do
          cbTbNames.Items.Add(List[i]);
      finally
        List.Free;
      end;
    end;
      

  3.   

    调用Session的Gettablenames即可!
      

  4.   

    adoconnection1.GetTableNames(combobox1.Items ,false);在combobox1中可以得到所有的表名