你的每个月的数据都在Excel表吗?还是在数据库里.

解决方案 »

  1.   

    合并各个表的数据用EXCEL VBA就可以实现,如果你的表功能不复杂,我想设置不用VBA,用EXCEL的公式就可以搞定了。生成一个表以后,可以用ADO导入数据库
      

  2.   

    首先将选择的excel倒入数据表中(我只举打开一个aa.xls的例子)
     Set MainWS = DBEngine.CreateWorkspace("MainWS", "admin", "")
     Set gdbTmp = MainWS.OpenDatabase("aa.xls", False, False, "Excel 8.0;hdr=Yes;")
    ‘得excel到表名
       tabName = gdbTmp.TableDefs(0).Name
       gdbTmp.Close    
       Set gdbTmp = Nothing
       MainWS.Close
       Set MainWS = Nothing
    '倒入数据到system.mdb
     Dim db As DAO.Database
        Dim tdfLinked As DAO.TableDef
        Dim tb As DAO.TableDef
        Dim intTemp As Intege If Dir(App.Path & "\system.mdb") <> "" Then
           Kill App.Path & "\system.mdb"
     End If
        Set db = DBEngine.CreateDatabase(App.Path & "/system.mdb", dbLangGeneral, dbVersion_0)
       Set tdfLinked = db.CreateTableDef("Temp")
        tdfLinked.Connect = "Excel 8.0;database=aa"
        tdfLinked.SourceTableName = tabName'表名
        db.TableDefs.Append tdfLinked
        db.Execute "Select Temp.* into cc from Temp"
        db.TableDefs.Delete tdfLinked.Name
        db.TableDefs.Refresh
    上面是简单的例子,你看看看就明白了,只要数据都倒入到数据库里了,那么剩下的工作就是对数据库操作了,那就简单了
      

  3.   

    谢谢楼上的兄弟,导入Access数据库用它自带的功能就行,关键是导入之后,在程序中如何得知其表数和名称,关键是新表中的字段是动态生成的,不固定。
      

  4.   

    我想生成表的字段只有前两个是固定的,其它都是动态的,SQL如何写?
      

  5.   

    dao 有个tables属性,这样你就可以得到所有的表名了其中tables还有他的表数,同样,dao的records属性中报了了每个表的字段总数,字段名称及类型有关信息,知道了这些我想你的该能解决问题了吧
      

  6.   

    to:houtianxi(高手):唉!!我实在太菜,我在程序里定义:
    dim db1 as dao 
    db1.(无tables属性)
      

  7.   

    选中所有数据,Insert->Name->create 可以创建数据库的表名---------------------------------------------------------
    Montaque==Digitalboy==Houyongfeng==Monkey
      

  8.   

    选中所有数据,Insert->Name->create 可以创建数据库的表名---------------------------------------------------------
    Montaque==Digitalboy==Houyongfeng==Monkey
      

  9.   

    选中所有数据,Insert->Name->create 可以创建数据库的表名---------------------------------------------------------
    Montaque==Digitalboy==Houyongfeng==Monkey
      

  10.   

    to: jz1204(皮特) 
    原始表结构:
    6月数据
    员工编号 员工名称  日期  平均生产量......
    ……
    7月数据
    员工编号 员工名称  日期  平均生产量......
    ……
    ……
    生成表结构:
    员工编号 员工名称 6月平均产量 7月平均产量……
     
      

  11.   

    哪有那么定义的:)
    看下面的例子 Dim db As DAO.Database
     Dim rs As DAO.Recordset
     Dim strTable As DAO.TableDef
     Set db = OpenDatabase(App.Path + "\UFDATA.MDB")
    Label1.Caption = "表的总数" & db.TableDefs.Count
     For Each strTable In db.TableDefs
           List1.AddItem strTable.Name
     Next
    这样就在List列出了数据库中所有的表
      

  12.   

    大家快来帮我解决这一难题。
    http://www.csdn.net/expert/topic/958/958179.xml?temp=.5596582
      

  13.   

    to: jz1204(皮特)
    对,之后在将每个月的数据进行对比。
      

  14.   

    你首先要把每个月的表从EXCEL倒入到ACCESS中
      

  15.   

    这步在Excel表里以存在,关键是从不确定表格数的情况下取数据,SQL不好写。
      

  16.   

    你要在ACCESS中随机建立表,删除旧表.
      

  17.   

    对,将Excel表导入Access中其数目并不固定,如果6个表那么生成新表中加上两个固定的字段,就得有8个字段,但这个表数不固定,也就是SQL语句如何写的问题?
      

  18.   

    你可以把所有从EXECEL中倒入的数据存入一个表中.
      

  19.   

    我觉得关键就是这条SQL语句的问题:
    如何在: 编号  姓名  日期        平均产量
             0001  abc   2002-6-21    150
             0002  cgh   2002-6-20    320
             0003  opo   2002-7-21    333
             0004  rrr   2002-8-2     444
             ……生成表格:编号 姓名 6月平均产量 7月平均产量 8月平均产量……
              0001 abc  150          333        444 
              0002 chgh 320          
              …… 这条SQL语句如何写?
      
      

  20.   

    最好用程序实现,不要用SQL语言
      

  21.   

    看看书就行了,记住什么语言都不是万能的SQL语言也是一样
      

  22.   

    呵呵,access里面不有个交叉报表吗,你所需要的不就是这准结果吗