blog

枪手亨利

博客园 首页 新随笔 联系 订阅 管理
    操作系统: WIN98
    编程工具: VB50
    如何实现在同一数据库(如ACCESS)所有数据表中查找某一记录?(Chiman Yid)
   
你打开Database对象以后,Database对象包括TableDefs集合。这个集合包括数据库中所有表的定义。表的个数为TableDefs.Count。你可以使用TableDefs(0),......,TableDefs(TableDefs.Count - 1)来依次获得各个表的定义(TableDef对象)。你也可以利用For Each ... Next来遍历整个集合。每个TableDef对象都表示一个表的结构,其Name属性就是表名。如果打开一个MDB文件,你可能会得到比实际多的表的个数,这是因为Access数据库中还有一些系统表,这些表通常不会被Access和VB显示出来,但你可以使用VB访问它们。如果你不想让这些系统表出现在你的列表中,可以判断TableDef的Attribution属性,如:
    IF TableDef(i).Attibution And dbSystemObject Then
     ' 系统表
    Else
     ' 普通的用户表
    End If
    

    你可以利用类似下面的程序:
    For i = 0 To db.TabDefs.Count
     IF Not (db.TableDef(i).Attibution And dbSystemObject) Then
     Set rd = db.OpenRecordset("SELECT * FROM ' + db.TableDef(i).Name)
     ...........
     End If
    Next
    

    
    mamin问:
    如果我用VC++中的ADO编辑数据库实现这个功能,ADO里没有TableDefs集合怎么办?
    答:使用ADOX(升级到Visual Studio 6.0 SP5,参考QA001156 "VB中的sp2,sp3,企业版这三种各代表什么含义"在ADOX中,可以借助Tables集合。

    

此问题由李海、st回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 数据库, database, query, SQL查询, sql server, sql, query, select

    
   
posted on 2005-12-09 12:09  henry  阅读(3108)  评论(0)    收藏  举报