把ERP系统中某些采购订单资料输出到一个ACCESS数据库,例如Test.mdb,一张订单对应一个表,例如vender1,这些工作可以手动完成,无须借助程序.接下来是如何将这些表vender1,vender2,vender3等合并到一起(每个表结构完全一样),以便在VB应用程序中进行统计归类;或者使用Adodc连接Test.mdb中的所有表,请问如何在VB程序中实现所有表合并或连接数据库中的所有表,望高手指教,多谢!

解决方案 »

  1.   

    ERP系统只提供这样的功能,没有其它更好的办法,当天的订单处理完成后,就可以删除生成的表.
      

  2.   

    用ADO得到所有表名,
    首先,添加两个引用:Microsoft ActiveX Data Objects 2.5 Library和Microsoft ADO Ext. 2.5 for DDL and Security
    例:
        Dim cn As New ADODB.Connection
        Dim x As New ADOX.Catalog
        cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=e:\system.mdb;Jet OLEDB:Database Password=123;"
        x.ActiveConnection = cn
        Dim i As Long
        For i = 0 To x.Tables.Count - 1
            Debug.Print x.Tables(i).Name, x.Tables(i).Type
    Next得到所有的表名,应该离解决问题近了一步
    在表不是很多的情况下,可以利用得到的表名动态生成SQL语句查询所有订单
      

  3.   

    每天的订单应该不会超过60张,即最大可能产生60个表,请问如何动态生成SQL查询语句?
      

  4.   

    dim str as string 
    For i = 0 To x.Tables.Count - 1        Debug.Print x.Tables(i).Name, 
    Next
      

  5.   

    dim str as string 
    str="SELECT * FROM "
    For i = 0 To x.Tables.Count - 1
         if x.Tables(i).Type=()  then
            str=str &  x.Tables(i).Name & " UNION "
         next
    Nextstr=left(str,len(str)-5)'最后生成的SQL语句我不知道是否可以这么做,试试吧
      

  6.   

    未完全按照yachong所提供的方法,还参考了其它帖子,所以送20分给yachong,多谢!