发布网友 发布时间:2022-04-20 12:19
共3个回答
懂视网 时间:2022-05-04 20:08
MS Access 作为 外部 数据 源 在信息化过程中,企业中可能在同时拥有几种信息系统,Excel 服务器 通过 外部 数据 源,可以利用它们的 数据 ,并可以将 数据 写回到 外部 数据 源中。本节介绍如何定义MS ACCESS 数据 源。 1.安装MS ACCESS的例子 数据 库 我们
MS Access作为外部数据源
在信息化过程中,企业中可能在同时拥有几种信息系统,Excel服务器通过外部数据源,可以利用它们的数据,并可以将数据写回到外部数据源中。本节介绍如何定义MS ACCESS数据源。
1.安装MS ACCESS的例子数据库
我们用“家庭财产示例数据库”作为例子,来讲解MS ACCESS外部数据源的设置方法。
2.点击“开始”-“程序”-“Excel服务器”-“管理控制台”:
3.鼠标右键点击“ES惯例台”,选择“连接”,用admin登录,口令为空。
4.鼠标右键点击“外部数据源”,选择“新建”-“数据源”:
5.数据源类型选择“Access”,数据源名称“家庭财产示例数据库”,点击
点击,选择MS Access数据库文件:
选择“指定帐户”,登录帐户为Admin,口令为空。点击“确定”。
6.点击“家庭财产示例数据库”:
7.鼠标右键点击“家庭财产”,选择“注册数据库”
8.点击“家庭财产编号”作为主键:
9.确定可读权限:
10.确定“可写权限”:
11.点击“确定”,定义完成外部数据源。
提示
1.主键必须确定。主键-确定记录唯一性的字段或字段组合。
2.显示名称-在Excel服务器的表间公式中用到的数据表明成,可以根据自己的需要修改。
3.显示列名-在Excel服务器的表间公式中用到的字段名,可以根据自己的需要修改。
4.可读权限-只有在此给可以查询该表数据的部门和角色授权后,才能在Excel服务器的表间公式中使用。
5.可写权限-只有在此给可以回写该表数据的部门和角色授权后,才能在Excel服务器的表间公式中使用。
热心网友 时间:2022-05-04 17:16
实现你的要求有编程和非编程两种办法
先说编程的方法:
可以在数据库端编写程序,每当ACCESS数据库表发生变化时同时将变更写入EXCEL文档中;也可在电子表格端用EXCEL工作表显示来自ACCESS数据库某张表的内容,并用VBA编写代码每隔一段时间自动刷新其数据源。编程的方法说起来简单但是实施起来涉及的技术细节很多、工作量不小,尤其是数据库端编程更是如此,挺费事的,就不提供具体程序了。
再说非编程方法,以你的程度来看这种方法也许更加适合:
打开EXCEL文档选择其中一个工作表,点击 数据——导入外部数据——新建数据库查询 打开 选择数据源对话框 在数据库选项卡选择“MS Access Database*”点击确定按钮 打开选择数据库对话框 选择要连接的ACCESS数据库文件所在的驱动器、文件夹和数据库文件名 点击确定按钮 打开 查询向导 - 选择列 对话框 双击 左边“可用的表和列” 中的某张表 点击 “>”按钮将需要输出的字段送到右边“查询结果中的列”之中,连续点击“下一步”直到“完成”按钮 出现 选择 “将数据返回Microsoft Office Excel”点击“完成”按钮 打开 导入数据对话框 选择 “现有工作表”点击“确定”按钮后 系统会将ACCESS表中的数据导入到EXCEL工作表中。
数据导入工作表后,如要反映ACCESS数据表的最新变动情况,请右击其中一个有数据的单元在弹出菜单中选择点击“刷新数据”即可。
你还可以随时调整“数据区域属性”以便实现“自动刷新数据”等功能,办法如下:
右击其中一个有数据的单元在弹出菜单中选择点击“数据区域属性”打开 外部数据区域属性 对话框 设置适合自己要求的属性后 点击“确定”按钮即可
涉及的图片较多,这里只给出“数据区域属性”对话框截图供参考
2.使用非编程方法虽然可以自动刷新跟进数据库的变动情况,但是其刷新频率最短只能设定为1分钟,如果需要将刷新频率缩短至秒级则需要编写VBA程序。下面是相关VBA代码:
首先导入数据库表的方法请参照上列手动非编程方法之说明
导入数据后请右击其中一个有数据的单元格,在弹出菜单中选择点击“数据区域属性”打开 外部数据区域属性 对话框(见附图) 修改外部数据区域的各个属性如下,然后点击确定
名称:QuertTbl
允许后台刷新复选框:不勾选
刷新频率复选框:不勾选
打开工作簿时,自动刷新复选框:勾选
第二步 编写VBA程序
1)使用快捷键Alt+F11 打开VBE(Visual Basic Editor)编辑器
2)单击菜单 插入——模块,打开模块代码窗口
3)在右边代码窗口输入以下代码:
'这段代码执行刷新数据源动作
Sub AutoRefresh()
Sheets("sheet1").QueryTables("QueryTbl").Refresh
Call AUTO_OPEN
End Sub
'这段代码设定刷新频率为10秒。注意刷新频率越高系统开销越大在数据量较大时更要注意这个问题,请尽量设定较长的刷新时间间隔。
Sub AUTO_OPEN()
Application.OnTime Now + TimeValue("00:00:10"), "AutoRefresh"
End Sub
4)在左边对象窗口,双击Microsoft Excel对象下的 Sheet1(Sheet1),在右边代码窗口输入以下代码:
'这段代码,令每次从其他工作表转到工作表1时刷新数据源
Private Sub Worksheet_Activate()
Sheets("sheet1").QueryTables("QueryTbl").Refresh
End Sub
第三步退出VBE编辑器,关闭工作簿,记得保存修改。
重新打开工作簿后,系统会提示安全警告,请点击“启用宏按钮”,跟着系统会提示查询刷新,请点击“启用自动刷新”按钮。之后工作簿就会每5秒自动刷新数据源,当你从其他工作表跳回工作表1时,即使未到刷新时间系统也会立即刷新数据。
附:用代码创建新的工作表并写入值的函数使用方法。
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Set xlapp = CreateObject("excel.application")
Set xlbook = xlapp.Workbooks.Add
xlbook.Saveas "c:\aaa.xls"'你要保存的文件路径
xlapp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表
xlsheet.Cells(1, 1) = "aa" '给单元格(row,col)赋值
xlsheet.Cells(1, 2) = "bb"
xlbook.Close (True) '关闭工作簿
xlapp.Quit '结束EXCEL对象
Set xlapp = Nothing '释放xlApp对象
热心网友 时间:2022-05-04 18:34
EXCEL菜单:数据---获取外部数据---自ACCESS!