使用for each table in database循环,可以获得每个表的表名,但注意要把以sys开头的去掉,那是系统表

解决方案 »

  1.   

    这位老兄,我不太清楚你是想不用表名就可以操作数据库,还是一个未知的数据库想得到表的名称?
    如果是前者,我觉得不可能,后者话就可以用如下方法得到表名:
    For i=0 to db.Tabledefs.count-1
      text1.text=text1.text+db.Tebledefs(i)
    next i
    这样就可以在Text1中显示所有表名了.
      

  2.   

    可以用DAO或RDO来处理,现提供代码如下。
    首先,引用Microsoft DAO 3.6库,3.51的不能访问Access 2000数据库
    然后可以用控件或代码写,用代码可以如此写。下面的代码返回comm.mdb中
    所有的表名。Private Sub Form_Load()
          Dim ws As Workspace
          Dim db As Database
          Dim tb As TableDef
          Dim str As String
          Set ws = DBEngine.Workspaces(0)
          Set db = ws.OpenDatabase("d:\comm.mdb")  '路径名+数据库名
          For Each tb In db.TableDefs
              str = str & tb.Name & vbTab
          Next
          MsgBox str
    End Sub