掌握要领,实现Excel动态链接外部数据库 1
我们有时需要在Excel中调取其他数据库的数据,并且希望其他数据库数据改变时,Excel中调取的数据也随之动态改变。下面介绍在Excel中通过“新建数据库查询”(Microsoft Query)的方法来实现动态链接数据库。
您在Excel中第一次使用“新建数据库查询”查询数据时,如果系统未安装Microsoft Query,系统会提示您安装。
一、Excel链接vfp数据库
vfp是常用的数据库,先以此来介绍。假设从px.dbf表中取出相应学校的数据,已知学校的后5位代码,数据所在字段为x16,数据值为03行和06行相加,放入Excel单个单元格中。
步骤如下:
1、点击菜单“数据”—“导入外部数据”—“新建数据库查询”,出现“选择数据源”对话框,选择“Visual Foxpro Tables*”,按“确定”。如果您对SQL语句不是很熟悉的话,请使用默认的“查询向导”创建。
(图1)
2、在“configure connection”对话框中,按“Browse”按钮选择表px.dbf所在的路径,按“ok”键。
(图2)
3、在“查询向导—选择列”对话框中,选择查询结果中的列,要选取的数据在“x16”字段,所以将可用表“px”中的“x16”列移至“查询结果中的列”,按“下一步”。
(图3)
4、在“查询向导—筛选数据”对话框中,因为此例中设置的条件在字段学校代码“xxdm”和行号“bh”,非字段“x16”,所以点击“下一步”,暂时不筛选数据。
(图4)
5、在“查询向导—排序顺序”对话框中,因为此例中所取的是单个数据,所在点击“下一步”。
(图5)
6、出现“查询向导—完成”对话框,因还要对数据进行筛选,所以选择“在Microsoft Query中查看数据或编辑查询”,点击“完成”。
(图6)
7、进入“Microsoft Query”,看到查询结果x16列出了所有行的数据。
接下来要通过设置条件来筛选所需的数据。
点击菜单“条件”—“增加条件(A)...”,字段“bh”,运算符“等于”,指定值为“03”,按“添加”。
(图7)
继续“添加条件”对话框,选择“或”,字段“bh”,运算符“等于”,指定值为“06”,按“添加”。
(图8)
继续“添加条件”对话框,选择“与”,字段“xxdm”,运算符“等于”,指定值为“11201”,按“添加”后按“关闭”。
(图9)
但是看到符合条件x16为空,这是因为学校代码的后五位为“11201”。
可以通过“显示SQL”来直接修改条件语句,将SQL语句中px.xxdm="11201"改成right(px.xxdm,5)="11201",按“确定”。
(图10)
也可以在“条件字段”直接修改。
(图11)
光标放在x16字段,点击“循环总计”,将查询出的两个值相加,当然也可以直接在SQL语句中修改。
(图12)
8、关闭“Microsoft Query”,弹出“导入数据”对话框,选择“数据的放置位置”,选择“$B$2”,按“确定”。
(图13)
9、但我们发现显示了标题行,真正的数据却显示到了$B$3,这时我们需要修改$B$2单元格的“数据区域属性”。点击$B$2单元格,按右键菜单的“数据区域属性”,弹出“外部数据区域属性”窗口,将“数据格式与布局”中“包含字段名”等前面的对勾去掉,将“数据区域中的行数随刷新而更改的方式”改成“用新数据覆盖现有单元格,并清除没有使用的单元格内容”,按“确定”。但还是有标题,没有关系,点击$B$2单元格,按右键菜单的“刷新数据”即可。
(图14)
10、如果px.dbf数据库有所改变,那么如何在Excel中刷新,可以点击链接数据所在单元格右键菜单中的“刷新”手工刷新;也可以在“数据区域属性”—“刷新控件”中选上“打开工作簿时,自动刷新”(见图14),从而在每次打开工作簿时,在“查询刷新”的提示框中按“启动自动刷新”按钮刷新(见图15)。
(图15)
11、如果需要编辑查询,则点击$B$2单元格,按右键菜单的“查询编辑”,如果出现“查询向导”无法编辑此查询的提示,只要按“确定”即可进入“Microsoft Query”。
12、$B$3单元格查询条件与$B$2相差的只是学校代码,可以将$B$2单元格复制到$B$3单位格,再用$B$3的“编辑查询”来修改,修改一下学校代码的值即可。
(图16)
二、Excel链接SQL数据库
链接SQL数据库与链接vpf大致是相同的。这里介绍的是连接两表的查询。
点击菜单“数据”—“导入外部数据”—“新建数据库查询”,出现“选择数据源”对话框,可直接选取所需链接的SQL数据库名。
如果SQL数据库有密码的话,将提示输入密码,按“确定”。如果SQL SERVER服务管理器未开启的话,将出现错误提示。
如果不使用“查询向导”的话,可直接进入“Microsoft Query”。添加表news和表type,news表中的typeid和type表的typeid建立关联。在“条件字段”中选择字段名,并在“值”中输入条件值,这里输入的条件是type表的typeid字段值为1且news表的topic中含有"小学生"。点击选择要输出的字段名,这里选择的是type表中的typename字段和news表的topic字段。
(图17)
当然,如果您对SQL语句熟悉,也可以直接输入SQL语句。
接下来的步骤请参考一、中的8、至10、。
三、与其他数据库(如access数据等)
这里就不再赘述了,基本思路就是这样了。