Office中国论坛/Access中国论坛

标题: Access菜鸟邪门web化第二步之迈出左狗脚:html与accform函数简单交互 [打印本页]

作者: ganlinlao    时间: 2015-12-11 18:36
标题: Access菜鸟邪门web化第二步之迈出左狗脚:html与accform函数简单交互
本帖最后由 ganlinlao 于 2015-12-11 18:49 编辑

这只是一个简单的例子,但基本够用。
我没有任何用html替代winform的意思,但在access中使用html5,确实能够把access带入一个富有现代感的世界,
很多界面效果的展示,winform远远比不上html5那么方便、简洁和丰富多采。html5是现在最流行和时髦风向。
这只是一个抛砖引玉的开始。希望给为access的应用带入丰富多采的世界。
[attach]57544[/attach]

没有解决的问题:
      1、utf-8字符集的问题。特别是Jquery的utf-8格式,困扰了我一段时间。因为activeX与utf-8字符集并不兼容。所以当你万一用到Jquery框架,对这个问题要注意。如果你有更好的解决办法,希望告知。
      2、Dom事件执行顺序,我还没整明白。特别是一个事件,如何先让javascript先执行,再执行vba代码。这个顺序,我还没弄明白。
如果你知道答案,希望告知,谢谢。
本例子使用环境:win8.1+office2010+IE11,win10+office2016+ie11。其它未测试。
[attach]57545[/attach]


作者: leonshi    时间: 2015-12-11 19:23
谢谢分享
作者: t小宝    时间: 2015-12-11 20:13
支持开创access新时代
作者: tmtony    时间: 2015-12-11 21:45
冬瓜,赞一个,你是VB和 ACCESS界的奇才!
作者: roych    时间: 2015-12-12 10:03
先说明一下,我是来泼冷水的。以下问题,你可以完全无视。
1、封装的WebbRowser好像丢失了【Win10+Edge+Access 2013】
[attach]57546[/attach]
2、UFT-8的问题,我向来是在HTML的meta标签里解决的。<meta charset="gb2312"> 【---这是HTML5的写法,其它写法:<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 】
3、如何判断点击的是Access Form对象还是HTML的标签对象,这是个问题。之前TodayNew还有站长都是在JavaScript里定义一个变量(例如AccForm),然后传递过来,但是兼容性始终不太好。这也是我不再研究jQuery在Access中应用的一个原因。
4、关于数据的安全性。Access的安全性是众所周知的。那么HTML页面该通过怎样的方式来对Access的数据进行CRUD(增删改查)呢?Array?JSON?还是ADO?不管怎么样,数据形式的转换总是一个问题。可能有人觉得可以不必输出数据,就在Access里用VBA处理,重写HTML代码。——不过这工程是否有些庞大,且不便于维护呢?另一方面则返回了第三个问题。
作者: ganlinlao    时间: 2015-12-12 12:37
晕,那个是我的疏忽,我忘了在引用中去掉vbmhwb。我在提供的例子中并没有使用vbmhwb。

接下来,无非就是两个重点障碍需要解决:
1、是集合类问题。
2、是数据绑定问题:
关于数据绑定无非就是三个方向的考虑:
(1)、json。这是优先要考虑的解决方案。因为不管哪一种js框架,都会用到json。recorset系列化成json,不是问题。解析json也不是问题。问题的关键是xmlhttpRequest。解决了xmlhttpRequest,自然就无须改动任何框架了。这样子,也遵循了,数据只需要一进一出。
(2)、ie在ie8模式下,可以直接使用recorset。并且数据可以直接绑定到html元素上。但ie11不能使用任何activeX,所以这个方案并成次优选择了。毕竟我们更多的是要使用Html5。
(3)xml方式。这不是一个太好的方案。


作者: tmtony    时间: 2015-12-12 13:52
R大师和冬瓜合壁吧。
作者: roych    时间: 2015-12-12 15:15
tmtony 发表于 2015-12-12 13:52
R大师和冬瓜合壁吧。

站长,Access的web化,我确实下过一些功夫,但后面还是觉得有些瓶颈不好突破。
绑定数据方面,Access的安全性就成为木桶理论中的短板了,更何况HTML本身就是静态页面语言。这一点根本无法跟B/S模式下的动态脚本语言(例如ASP.Net,PHP等等)相比。
所以,我宁可使用Access作为后台数据库,前端用ASP.Net等来处理。只是这时候需要在服务端配置IIS【内网,单机版可以考虑站长ASP调试工具】,或者申请网页空间【外网】。由于一直没找到可支持的免费空间【个别只支持管理员登录,或者只支持内容管理系统(CMS)】,所以我也就没做这方面的例子了。
作者: WFH6898    时间: 2015-12-13 08:58

谢谢分享
作者: WFH6898    时间: 2015-12-14 15:07
太强了
作者: leonshi    时间: 2015-12-14 15:30
强大的讨论,也让我们了解了不少知识
作者: jasonjiang9999    时间: 2015-12-14 17:39
1. 修改jqeury 的ajax, post, get 函数. 不再发起xmlhttpRequest, 直接通过acc的某个接口去读数据,
2. html按钮没必要和access交互. acc做个数据仓库即可.
作者: jiajiapt    时间: 2015-12-15 12:19
真大神也
作者: LeeTien    时间: 2015-12-16 23:23
对于公网应用,access天生不足,我之前有个项目本来是access开发的,后来系统升级,没办法转jsp了。
作者: hunrybecky    时间: 2015-12-19 11:31
本帖最后由 hunrybecky 于 2015-12-19 11:40 编辑
roych 发表于 2015-12-12 15:15
站长,Access的web化,我确实下过一些功夫,但后面还是觉得有些瓶颈不好突破。
绑定数据方面,Access的 ...

完全没有必要申请免费空间,自己拿PC做一个IIS服务器即可,然后路由或者防火墙做一个WEB端口映射就可以了,如果你使用的固定IP,直接使用IP访问即可,如果使用的是动态IP,直接去花生壳申请账号,支持二级域名直接绑定到动态IP。
我是做网络这块的,所以对这个很熟悉例:外网IP动态,申请二级域名hunrybecky.vicp.net,IIS服务内网IP 192.168.1.100 安装花生壳并登陆(很多路由支持直接绑定花生壳),路由只需要在端口映射/转发中建立一条规则:外网端口:8888 内网IP 192.168.1.100,端口80

1.路由直接绑定动态域名,我的支持科迈和花生壳的

[attach]57587[/attach]
2.外网端口映射到内网IP上
[attach]57588[/attach]
3.外网直接访问绑定的二级域名hunrybecky.kmdns.net:8888就可以直接访问内网的WEB主机了

注意:为了防止黑客:建议路由前面放防火墙,这样就攻击不进来了。。。


作者: xxk8077    时间: 2023-3-9 08:05
学习一下
作者: worryd1    时间: 2023-11-21 19:19
开眼界了




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