网络数据库以及ERP在中小型企业中日益风行,虽然ERP功能强大,但有的ERP报表系统中规范的报表较少,主要提供二次开发接口或通过如CRYSTALREPORT等其他报表工具进行管理,其实我们可以使用Excel实现部分报表查询功能。在下面我将通过一个实例,向大家介绍如何通过ODBC,用Excel建立方便的报表查询系统。
  实现原理:通过ODBC将Excel与ERP后台数据库连接起来,将数据库中的数据有选择地导入到Excel中,然后通过Excel强大的计算、汇总、筛选等功能,来弥补部分ERP系统报表较少的不足,以满足用户日常使用的需要。
  [建立ODBC连接]
  在电脑上建立一个ODBC连接,使Excel通过ODBC连接到ERP数据库(如SQLSERVER数据库)。打开“开始→设置→控制面板→管理工具→ODBC”,点击“添加”按钮。这里以SQLSERVER为例,选择“SQLSERVER”,点击“完成”。接下来对话框的服务器一项应填写公司ERP数据库所在机器的机器名或IP地址,点击“下一步”按钮。
  身份验证分为两种方式:一种是与操作系统相结合的身份验证,另一种是使用单独的SQL身份验证。在这里选取单独的SQL身份验证,登录名及密码请咨询公司的数据库管理员,然后点击“下一步”。
  在接下来的对话框中,勾选“更改默认的数据库为”,在下面填入数据库名,点击“下一步”按钮。然后点击“测试数据源”按钮以测试本机与ERP数据库的连接情况,如果见到测试成功提示说明ODBC设置成功。
  小贴士:ODBC(开放式数据库连接)是一种数据库接口技术,它能使应用程序访问以结构化查询语言(SQL)作为数据访问标准的数据库管理系统的数据。
  [将数据导入Excel]
  打开Excel的“数据”菜单,点击“导入外部数据→新建数据库查询”,在选择数据源对话框中选择刚刚建立的ODBC连接,点击“确定”按钮。
  进入查询向导界面,选择你需要的表及字段,双击即可。表和字段的定义请查询相关ERP的文档或咨询数据库管理员。
  将选择的字段按你所需要的顺序排列(多张表之间的连接将在以后提及),点击“下一步”。如果需要筛选数据,请在筛选数据对话框中输入过滤条件,点击“下一步”。
  如果需要查询的数据全部在一张表中,可以在完成对话框中选择直接将数据返回到Excel,如果数据存在于多张表中,需要进行表与表之间的连接或进行更复杂的筛选、汇总操作,选择“在MicrosoftQuery中查看数据或编辑查询”,点击“完成”。
  在Query中,可以进行表与表之间的连接,条件的过滤、格式的定义、排序、汇总等等,如果对SQL语言比较了解的人可以直接修改SQL语句。
  然后选择“将数据返回Excel”,将源数据库中的数据导入到Excel。这时将出现“外部数据”工具栏。如果需要将Excel中的数据与数据库同步,点击“刷新数据”即可。如果需要编辑刚刚建立的查询,点击“编辑查询”进行编辑。
  为了方便每次自动刷新,点击“区域属性”,在弹出的对话框中勾选“打开工作簿时自动刷新”,这样在每次打开Excel文件时得到的就是与源数据库同步的数据了。
  小贴士MicrosoftQuery是用于将数据从外部数据源(包括Access、SQLServer、Excel、文本文件)检索到Excel中的一种程序,在每次更新数据库时,自动通过源数据库中的数据来更新Excel报表和汇总数据。形象地说就是向外部数据库提出的一个问题。
  [建立属于自己的查询]
  通过以上两个步骤,你已经得到了与源数据库同步的数据,下一步就是根据自己的需要,在Excel中建立自己的查询。一般的方法是在数据源工作簿之外新建一个工作簿,通过连接的方式,将数据按自己的格式建立自己的查询。
  下面将介绍一下数据透视表。数据透视表是一种交互式报表,可快速合并和比较大量数据。在你得到大量源数据后,用数据透视表可以进行自动汇总、自动刷新。
  点击“数据→数据透视表”,选取“数据列表和数据库”和“数据透视表”,点击“下一步”。
  为数据透视表新建一个工作表,点击步骤3对话框的“布局”按钮。将汇总的项目(如部件号)放置在“行”,将要求和的字段放置在“数据”中,点击“确定”然后点击“完成”,即可得到汇总数据。同样地将该数据透视表设置为打开时自动刷新。这样每次打开Excel时就得到了最新的汇总数据。
  [总结]
  先建立ODBC,然后通过导入外部数据将源数据库的数据导入,最后通过函数或数据透视表等方法对数据进行组织,以达到自己查询的目的。以上介绍的方法不光可以用在ERP后台数据库的前台查询中,也可以从桌面数据库ACCESS或其它的数据源中导入数据到Excel,建立属于自己的查询。

注明:内容转载自http://www.233.com/cy/zhidao/diansuanhua/20090604/081403318.html

用excel打造报表查询系统的更多相关文章

  1. 基于Impala平台打造交互查询系统

    本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impal ...

  2. SNF开发平台WinForm-EasyQuery统计分析-效果-非常牛逼的报表查询工具

    无论是单轴曲线 .双轴曲线 .柱形图 .饼图 .雷达图 .仪表图.图表引擎全能为您轻松实现.您只需要 3 步操作(数据源准备,设计图表,挂接到您想要展示的位置)便可完成 BI 的设计. 无论是普通报表 ...

  3. 【云图】如何制作全国KTV查询系统?

    原文:[云图]如何制作全国KTV查询系统? 摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. ...

  4. TableStore最佳实践:GEO索引打造店铺搜索系统

    摘要: 如何使用TableStore打造店铺搜索系统 一.方案背景 对于一套GEO管理系统,其核心点与瓶颈在于数据库的存储性能与查询能力:一方面,存储服务需要应对海量数据的低延迟存.读,另一方面,存储 ...

  5. 使用C#和Excel进行报表开发(三)-生成统计图(Chart)

    有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印.在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软 ...

  6. Android查询系统的音频(音乐播放器的核心)

    //查询系统的音频库 public static List<MusicBean> getMusicInfo(Context context){ List<MusicBean> ...

  7. [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. C#操作Excel开发报表系列整理(转)

    C#操作Excel进行报表开发系列共写了七篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  9. atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结

    atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结 1. 基本的流程 查询获得list 读取jsp的table获得标题and 字段的map to ...

随机推荐

  1. Oracle 关于定义约束 / 修改表结构 /修改约束

    ---约束分5种:主键 外键 唯一 非空 检查5类约束 Oracle中分列级别约束 与 表级别约束 列级别约束:在创建表时再列上面加约束 例如: create table table11( stuno ...

  2. [C#]将千分位字符串转换成数字

    关键代码: /// <summary> /// 将千分位字符串转换成数字 /// 说明:将诸如"–111,222,333的千分位"转换成-111222333数字 /// ...

  3. Yii通过控制台命令创建定时任务

    假设Yii项目路径为 /home/apps/ 1. 创建文件 /home/apps/protected/commands/crons.php <?php $yii = '/home/apps/f ...

  4. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程

    现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...

  5. 修改oracle数据库为归档模式

    参考博客:http://blog.csdn.net/codesaint/article/details/1901030 Oracle分为非归档模式(NOARCHIVELOG)  和归档模式(ARCHI ...

  6. Tips of Python!

    Tips of Python!(Python 2.7) (不定期更新中-) 1. raw_input() 和 input(): raw_input() 将输入原封不动的保存为一个字符串 输入 1 + ...

  7. JS的this本质

    1.this究竟为何物? 1.1 全局上下文(Global context ) 在全局运行上下文中(在任何函数体外部),this 指代全局对象window,无论是否在严格模式下. alert(this ...

  8. Unity3d Shader开发(三)Pass(Blending )

    混合被用于制作透明物体. 当图像被渲染时,所有着色器被执行以后,所有贴图被应用后,像素将被写到屏幕.他们是如何通过Blend命令的控制和已有的图像合并呢? Syntax 语法 Blend Off Tu ...

  9. LogBack入数据库重写

    项目需要:将info以及error的日志信息写入到数据库中:同时所有的日志都要写入到日志文件中. 可以封装一下,在基类的logError/logInfo中调用了log.error()以及log.inf ...

  10. CODEVS 3286 火柴排队

    [题目描述 Description] 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ,其中 ai表示 ...