我工作用到一个excel文件,包括两个工作表,一个明细表,一个统计表,统计表是用SQL SERVER做的,由于明细表经常变动,所以要经常把统计表导入SQL中,然后还要把运行结果复制到统计表中,很麻烦,统计表又不能实时更新
 所以,我突发奇想,能否把SQL语句嵌入到EXCEl表中呢?以后就不用这么麻烦拉,有没有这种先进的技术呢?呵呵

解决方案 »

  1.   

    当然可以,你可以研究下VBA for excel这个东西,只要你愿意,可以把excel做成一个进销存系统。
      

  2.   


    VBA 編程是一種方法,我給你介紹一個簡單的方法不知樓主有沒有用過excel的ms query 功能,這個很好用的,可以執行sql語句,也就是你說的這個
    功能
      

  3.   

    ms query 是查询外部数据
      

  4.   

    Limpire(昨夜小楼) ( ) 信誉:100  2007-09-03 13:51:04  得分: 0  
     
     
       ms query 是查询外部数据
      
     
    -----------
    說得對,如果明细表導入sql中時,就可以在ms query 中直接操作 明细表 了,並把結果自動
    存放在指定位置
      

  5.   

    哈哈哈,太好啦,我刚刚加了50分
    一个EXCEl文件,包含两个工作表,一个明细表js,一个是相关的统计表tj,我在SQL SERVER上用查询语句可以得到统计表,现在在excel上用VBA编程如何实现呢?下面是查询语句
    SELECT 所属变电站, 柜线编号, 所属柜线, 
          公用总数量 = SUM(CASE 备注 WHEN '公用' THEN 1 ELSE 0 END), 
          公用容量 = SUM(CASE 备注 WHEN '公用' THEN shiyrl ELSE 0 END), 
          专用总数量 = SUM(CASE 备注 WHEN '专用' THEN 1 ELSE 0 END), 
          专用容量 = SUM(CASE 备注 WHEN '专用' THEN shiyrl ELSE 0 END), 
          总数量 = COUNT(*), 总容量 = SUM(shiyrl)
    FROM js
    GROUP BY 所属变电站, 柜线编号, 所属柜线
    能否把详细的步骤说一下,我对VBA是一点点都不懂啊
    还有,由于我修改明细表是直接在excel上修改的,所以最好不借助SQLSERVER软件就能实现统计表的更新
      

  6.   

    怎么没人回复啊,在线等了好久啦,是不是这个帖子应该发到VBA那栏啊,我相信这边应该很多高手的啊
      

  7.   

    其实在 Excel 2007 中是可以直接写Sql语句查询数据的,还可以定时刷新
      

  8.   

    用2007可以直接生成一个工作表吗?可惜我这儿没有2007啊,其实我更想学点VBA方面的知识,帖子怎么回复的人这么少啊
      

  9.   

    用excel sum()函數就可以搞定假如,"備注" 在excel a1:a10這一列
        "專用,共用" 在 excel b1:b10這一列
       "shiyr1"在c1:c10一列所屬總數量 為 標題
    =sum(a1:a10="備注")*(b1:b10="共用")公共容量
    =sum(a1:a10="備注")*(b1:b10="共用")*(c1:c10)專用總數量
    =sum(a1:a10="備注")*(b1:b10="專用")專用總容量
    =sum(a1:a10="備注")*(b1:b10="專用")*(c1:c10)總數量
    =sum(a1:a10="備注")*((b1:b10="共用")+(b1:b10)="專用")總容量=sum(a1:a10="備注")*(c1:c10)
    注:
    在單無格輸入公式後不能直接回車, ctrl+shift+回車
      

  10.   

    fa_ge(鶴嘯九天) :我觉得这样不可以拉,因为我还要按线路统计出容量和数量,而且明细表的行数经常变动,还有就连线路也有时会增加,我觉得只能用数据库查询才能得到这个结果
      

  11.   

    那是沒辦法,隻有先導入sql 中,再計算了
      

  12.   

    用ms query:数据/导入外部数据/新建数据库查询 
    引用的外部数据为本文件(本文件先要保存),将下面的查询修改后,放入MS Query的SQL语句中,再将MS query的结果返回此文件的另一个工作表中即可SELECT `Sheet2$`.所属变电站, `Sheet2$`.柜线编号, `Sheet2$`.所属柜线, Sum(iif(`Sheet2$`.备注= '专用 ',1,0)) AS  '专用数量 ', Sum(iif(`Sheet2$`.备注= '专用 ',`Sheet2$`.shiyrl,0)) AS  '专用总容量 ', Sum(iif(`Sheet2$`.备注= '公用 ',1,0)) AS  '公用数量 ', Sum(iif(`Sheet2$`.备注= '公用 ',`Sheet2$`.shiyrl,0)) AS  '公用总容量 ', Count(`Sheet2$`.备注) AS  '总数量 ', Sum(`Sheet2$`.shiyrl) AS  '总容量 ' 
    FROM `C:\Documents and Settings\Administrator\桌面\Book1`.`Sheet2$` `Sheet2$` 
    GROUP BY `Sheet2$`.所属变电站, `Sheet2$`.柜线编号, `Sheet2$`.所属柜线
      

  13.   

    由于工作问题,我过去一年很少上网,我想问下15楼专家Sheet2$是不是明细表啊,还有FROM   `C:\Documents   and   Settings\Administrator\桌面\Book1`.`Sheet2$`   `Sheet2$` 怎么会连续两个`Sheet2$`,感觉第二个多余?