奔牛网>数据库>MSSQL>>EXCEL访问SQL数据库实现过程
2010年05月24日

EXCEL访问SQL数据库实现过程

在日常的ERP系统的实施过程中,我们往往会遇到客户的一些个性化需求,比如个性化的报表。因为有些特殊的客户需求,系统中的标准不能满足客户要求,这不今天我就遇到了一个客户,对方的高层坚持要使用电子表来查看ERP系统中的数据,原因是他用惯了电子表,我也花了很多时间和对方交流沟通,希望能够改变对方的观念,没想到对方最后撂下一句话,如果不能在EXCEL中显示他要的报表的话,合同暂时就不签了。 简直就是杀手锏啊!现场咨询我的老师,回复通过ODBC可以实现,尽管不清楚具体实现方法,但是既然说能够实现,先答应下来再说,不能眼看到手的单子丢掉啊,不过和客户说明白要花点时间开发的,客户最终同意我们花点时间。不过他要先看到在EXCEL中的报表效果,是不是像我所承诺的那样。回到公司立刻着手开始研究实现过程,最终实现了客户的需求,本案例以金蝶ERP为基础,现总结具体实现过程如下: 进入控制面板—管理工具—数据源(ODBC),点击进入界面如下:  
 

    点击“添加”按钮,出现如下界面,拖动滚动条,选择最后的“SQL Server”,点击完成,  
 

    在“名称”一栏中输入方便记忆的链接数据源名称,本案中为“KingdeeSQL”,“服务器”一栏中输入你所要链接的具体的服务器名称,可以点击右侧向下三角图标选择,也可以直接输入,本案中以本机为例。  
 

    点击下一步,进入如下界面:  
 
  按照图示选择,本案中的数据库用户名为“sa”密码为空。点击下一步继续:  
 

    系统默认数据库为“master”,在这里我们需要更改成我们需要实现取数的那个数据库名称,本案中以“JNJD”为例。点击下一步,继续:  
 

  该页面为默认,无需更改,直接点击完成按钮即可。你可以使用系统自带的测试功能,测试一下链接是否成功。  
 
  点击“确定”吧,还犹豫什么呢?到这里ODBC数据管理和SQL数据库之间的链接就建立起来了。接下来我们就要通过EXCEL来实现通过数据库取数了,激动人心的时刻马上就要开始了,不要急,先离开屏幕一小会,意在保护你的眼睛哦! 接下来我们打开EXCEL,本案中以office2007作为示范,进入EXCEL,点击“数据”中的“其他来源”下拉菜单中的“Microsoft Query”,点击进入如下图:  
 
     选择我们刚刚新建的“KingdeeSQL*”数据库,点击确定:

   
 
 

    这里你选择需要查询的表,可以是单个表,可以是多个表,单个表的话,比较简单,这里就不再赘述,主要讲讲多个表的组合查询。当你选择左侧的表时,点击箭头后右侧会显示该表的所有列信息,这时候,你可以对所选的列中不需要的进行去除,同样使用箭头功能即可实现。我们在这里选择的是“ICStockBill(单据表头)”,接下来再选择“ICStockBillEntry(单据表体)”和“t_ICItem(物料表)”,接下来我们就开始来对这些表之间建立连接关系。 点击下一步。  
 
 
    此时系统出现如下提示:  
  因为我们选择了几个表,系统不知道他们之间的关联关系,所以接下来,只有通过我们手工来连接了,点击确定继续:  

   通过手工直接找到关联的内码,进行拖拽,建立表与表之间的关联关系:  
 

    这时候,我们点击左上角的“SQL”按钮时,你会发现原来你所做的系统自动的生成了一个查询语句了:  
 
  如果你会写SQL查询语句的话,也可以在该界面中直接修改或者填入语句,以实现对数据库的查询,这里的语句和SQL中查询分析用到的语句没什么两样,举例如下:  
 

  确定后,我们可以直接看到查询的效果如下:
 
    好了,到这里我们即将大功告成了,点击保存吧。 我们来看看在EXCEL中的效果吧:  
 

    这时候我们的工作还没结束,因为我们您想得到的数据需要能够和数据库的信息同步更新的,此时还需要对该链接进一步设置才能实现,接下来我们就趁热打铁,按照如下图示点击进入:  
 

  系统默认刷新频率为“60”分钟,我们根据需要更改成具体的时间。如果以后需要对需要查询的内容进行调整的话,可以直接在上图中点击“定义”,在命令文本中对语句直接进行修改或者进入到Microsoft Query进行修改。 到此,我们的工作就全部结束了。怎么样?有成就感吧?只要我们多动脑筋,很多问题还是可以解决的,这不又多了一个签单的机会了嘛!  

 

顶(8)
踩(0)
最新评论