设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2001|回复: 3
打印 上一主题 下一主题

关于ADP在实际运用中遇到的一些问题

[复制链接]
跳转到指定楼层
1#
发表于 2015-4-29 11:40:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lshstruc 于 2015-4-29 11:48 编辑

关于ADP的几个特性,跟大家交流一下:
1.currentproject.connection不支持ADO事务,事务提交或回滚的时候,会出现“当前没有活动事务”的提示。经分析,主要原因应该是adp的currentproject.connection采用的是本地游标,CursorLocation = 3,如果在ADP中使用事务,建议自己写连接字符串,并定义服务器端游标。推荐以下字符串cn.Open "rovider=Microsoft.Access.OLEDB.10.0;Data Provider=SQLOLEDB;Server=127.0.0.1,7788;Database=wzb;UID=saWD=admin;"
2.adp的主子窗体如果存在以下情况的时候,会弹出对话框“列前缀**与查询中所用的表名或别名不匹配”
   1.子窗体与主窗体通过字段链接
   2.子窗体数据源不绑定到表,而是绑定到查询
   3.子窗体打开筛选
就会在子窗体刷新时,不经意间弹出对话框,虽然不影响最终查询结果,但是很烦人。解决的办法是在刷新通过VBA代码关闭筛选,或者在SQLSERVER里面用查询语句建立视图,再把视图绑定到子窗体。
3.在ADP中建立的存储过程,比如删除,追加,更新,若在ADP环境下直接通过调用存储过程名执行,只会作用前10000条,但是如果在VBA里直接通过SQL语句运行,则作用全表,这个问题如果不解决,会直接影响我们操作大表时的结果的正确性,属于严重的问题,这个解决办法是在数据库设置里面,把记录限制10000条改成0,adp的这个功能很奇怪,因为我的理解,存储过程是保存在服务器上的,本地为什么要去限制他呢?跟你有毛的关系吗?。
4.adp的绑定窗体里面有一个SERVERFILTER属性,就是对记录集进行筛选,注意不是本地筛选,而是在服务器端筛选,当我们需要筛选时,vba里面代码定义筛选后,会临时保存到窗体属性里面,在这个期间如果你点了程序的保存按钮,就会记忆到窗体属性里面,下次窗体加载时会自动直接执行服务器筛选,当你不需要筛选时,却不能阻止,只能得到一个错误的查询结果,解决办法是,先清除自动保存的筛选定义,然后在窗体的open事件里,写上“me.serverfilter=""”,每次自动清除。
5.以后就没有ADP了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-4-29 14:41:11 | 只看该作者
我只看到第五点…大家还玩ADP么?{:soso_e120:}
3#
 楼主| 发表于 2015-4-30 08:58:17 | 只看该作者
以上的第二条,在子窗体打开排序的时候,也会出现,

点击这里给我发消息

4#
发表于 2015-4-30 12:45:58 | 只看该作者
总结得真不错,赞一个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-26 14:41 , Processed in 0.073247 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表