Compartilhar via


精通2010: 用Access+SharePoint 来收集数据

上一篇介绍了用Access+Outlook来收集数据,不用写代码,跟着向导一步步点就好了。不过这都Web 2.0的时代啦,要是直接通过网络来收集数据,life就easy了呀。不仅如此,Walter同学在上一篇的留言里提及了GoogleDocs, 这么好的segue引出Access Services,在这里谢过Walter了 :)

先说Access Services是什么吧。Access Services是2010新推出的一个SharePoint component,功能在于把一个Access文档发布到SharePoint网站,这样一来Access窗体和报表就变成了网页,直接通过浏览器浏览。Access Services是第一版,新鲜出炉:),不过公能没有Access胖客户端那么丰富,比如Access Services不支持VBA编程,网页之间的互动用宏来完成。下面我们就看看这些功能对小王的例子够不够用吧。

小王在Access的客户端里面建一个窗体(我不知道当年谁把Access里面的Form翻译成了窗体,叫表格不好么?:( 现在说什么也改不了了,大家就当新词汇学吧,窗体== form),发布到SharePoint以后,那个窗体(form)变成一个网页,小王只要将链接发给她所有的分行同事就行了。而他们直接在网页上填新的会议纪要,小王那头的报表里面就有啦。流程如下:

1. 和上集一样,小王在Access里面做个数据表,并把报表建好(分组,排序,排版等等)。

2. 小王建一个窗体(form)。

clip_image002

3. 把整个Access文档发布到SharePoint。窗体和报表都变成了网页,各有各的链接。

4. 小王的同事用窗体的链接打开网页,直接填写数据,按确认键。

clip_image004

5. 小王这边的报表自动更新。

哦,为什么小王没有用GoogleDoc?Don’t get me wrong, GoogleDoc是个很不错的产品,虽然功能较Excel相比少了很多,但是Google在performance方面花了很大功夫,浏览器里的user experience相当responsive. 小王选择了Access是看中了Access“一站式”的服务,不仅有表单,窗体(form),还有报表。我们在上一篇就说到了,在报表里定义好了分组、排序等之后,新数据近来会自动跑到报表里面对应的组,保持定义好的排序,排版也不会被破坏,可以直接打印。再一个,小王不仅要收集分行的会议纪要啦,各个分行的电话分机单,座位表,工会活动计划,要是用Excel或者GoogleDoc来存储,每个就是一个文档,容易搞错放在哪里,用Access就可以把所有者些都变成一个信息汇总文档里面的不同对象,可以在导航窗格里面选中直接打开,集中管理。

clip_image006

看到这里,你或许会说,“我们公司没SharePoint,这个我用不了啊。。。”呵呵,没关系,只要你有Access 2010的客户端,会有第三方服务供应商提供SharePoint服务的。比如Access team的好朋友Larry就办了AccessHosting专门做SharePoint hosting服务。国内有几家大公司搞cloud的也在和微软接洽SharePoint事宜;或者有人想创业的话,hosting SharePoint也是可以考虑的商业模式啦。Anyway, 扯远了,说这些主要是讲今天如果你用Access 2010 Beta, 那么Larry为大家提供免费的Access Services服务,只要到这里申请就可以了。想尝试一下的朋友不妨试一试。我的Demo就是发到那个上面的。我有不少的网络调研表也是用Access Services的形式发布出去,大家直接在网页上填写,我就直接看报表里面的结果啦。

下面就上视频给大家演示一下怎么从Access客户端向SharePoint发布Access文档吧。

[

](https://player.youku.com/player.php/sid/XMTU0NjU4MTI0/v.swf "https://player.youku.com/player.php/sid/XMTU0NjU4MTI0/v.swf")

 

 

-Lois

Comments

  • Anonymous
    February 28, 2010
    非常棒的解决方案演示,可惜无法亲身体验。其实我有向accesshosting.com申请免费注册,但一直未能获得许可 :(有几个疑问:1.从演示上看报表可以实现完整的平滑转移,和ACCESS客户端一模一样,正如正文所说“这样一来Access窗体和报表就变成了网页”。但是,你还明确说“Access Services不支持VBA编程,网页之间的互动用宏来完成”。那我的疑问就是ACCESS客户端复杂报表(背后需要通过VBA实现的,比如使用函数提取数据等等)如何来实现?宏应该不能全部替代VBA,这个情况如何处理?2.示例演示是比较简单的单一窗体解决方案,对于一对多关系的主子窗体能否解决?其实这个也是所有WEB开发面临的不易解决的。如果数据录入无法提供更好的用户交互,仅仅体现漂亮的相对简单的报表无法满足用户需求