Office中国论坛/Access中国论坛

标题: 【Access小品】向朱亦文老师汇报--WebBrowser控件与数据库交互示例 [打印本页]

作者: todaynew    时间: 2012-8-28 21:49
标题: 【Access小品】向朱亦文老师汇报--WebBrowser控件与数据库交互示例
本帖最后由 todaynew 于 2012-8-29 06:06 编辑

  昨天朱老师写了一段关于WebBrowser控件的代码,其中对于在javascript中定义一个对象变量accForm,并在vba中设置的处理很有意思。今天反复琢磨后,觉得可以不这么写。便尝试着多种改变方式,发现在javascript调用vba的函数或者子程序(甚至变量)时,也可以直接用parentWindow对象。只是这样的处理有时候报错,报错的原因不明。

  这个问题研究过后,觉得还是用朱老师的方法更好一些。并由此深入考虑了一个问题,那就是关于WebBrowser控件的Hello World是什么?我觉得至少应该是做出一个简单的数据筛选来吧,于是便尝试着向这个方向编写代码。思路上有两个,其一是直接写javascript或者JQuery代码,不过这个方向实现虽然不成问题,但是比较啰嗦也没新意。于是想到第二个思路,那就是能否用vb写函数或子程序,而由html标签的事件来调用这些函数,这个思路有点像vb.net中间层处理。

  
  按照第二个思路,需要解决两个方面的问题,第一是找到WebBrowser控件在vba的各种标签对象,并试验他们的属性和方法;第二是解决好javascript调用函数和子程序问题。从网上的资料很难找到现成的解法,不过还是可以连蒙带猜的找到一些具体的方向和手段。经过近三个小时的努力,终于在主要的问题上取得了突破。于是便写此例,一是向朱老师汇报学习情况,二是于版友们分享学习成果。

  这个示例是Hello World级别的,没有做css样式和其他复杂的功能,主要是表现动态将数据表中的数据通过vba函数加载到WebBrowser控件中。但是由这个示例,不难扩展到更为广泛的运用,比如像数据库写入数据、比如分页呈现数据等等。

[attach]50267[/attach]

[attach]50268[/attach]
作者: huanghai    时间: 2012-8-28 22:32
很不错,学习了!
作者: zhuyiwen    时间: 2012-8-28 22:51
爽!赞一个!
作者: zhuyiwen    时间: 2012-8-28 22:55
todaynew 发表于 2012-8-28 20:30
用vb写函数或子程序,而由html标签的事件来调用这些函数,这个思路有点像vb.net中间层处理。


确实,就是把Access当服务器端来写。很像ASP.NET AJAX。呵呵......

作者: zhuyiwen    时间: 2012-8-28 23:29
'body的onload事件不知为何没反应,只好用下拉列表框的onmouseover事件代替

是因为加载的是“about:blank”网页,而用Document.write,它并不是加载网页,所以不可能激活onload事件。

因此,要在 Document.write 之后,手工调用 onload 指定的脚本代码,或用 VBA 调理一次。
作者: andymark    时间: 2012-8-28 23:33
学习
作者: t小宝    时间: 2012-8-29 00:27
这个要学
作者: todaynew    时间: 2012-8-29 05:47
zhuyiwen 发表于 2012-8-28 23:29
'body的onload事件不知为何没反应,只好用下拉列表框的onmouseover事件代替

是因为加载的是“about:blan ...

明白了,可不用任何标签事件,而直接在执行Document.write后,执行向下拉列表框加载数据的函数GetDepartment
作者: 老鬼    时间: 2012-8-29 07:56
最近大家怎么都爱上这东东了,学习~
作者: yanwei82123300    时间: 2012-8-29 08:14
很不错,学习了!
作者: 若离ヘ不弃°    时间: 2012-8-29 09:34
学习
作者: liwen    时间: 2012-8-30 09:11
加入收藏
作者: jinzhanxi    时间: 2012-8-30 10:17
好好学习一下

作者: zpy2    时间: 2016-12-29 13:46
收藏,好文章




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3