设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 关于t小宝版主的 主子窗体批量更新系统

[复制链接]
跳转到指定楼层
1#
发表于 2017-7-29 21:32:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wx0000888 于 2017-7-31 09:07 编辑

下面是关于 t小宝版主的 主子窗体批量更新系统:
用过的各位网友:
1  DAOtransform  2   ADOtransform  3  ADObatchform   , 后面2,3两个采用ADO绑定用于2007版本以上没有 问题. 只要
Set cnAcc = CurrentProject.AccessConnection
改成
Set cnAcc = CurrentProject.Connection
再添加  rs.CursorLocation = adUseClient
后又加了自定义汇总条,  算是解决了ADO绑定主子窗体无法汇总合计的问题.

自定义汇总条 请看帖子 <完美解决主子窗体ADO事务更新2010版+自定义汇总条>

复制代码但没有DAO绑定主子窗体,直接添加内置的汇总合计的内置功能这样简单好看.  可每次运行两次到三次保存, 就内存溢出'28', 崩溃.  难道真的要放弃使用DAOtransform 吗?
后反复测试, 或许是解决了问题的症结所在,现暂时没出现问题. 明天放贴,发附件.


DAOTransform 在高版本 解决 内存溢出的方法是 , 解除 主表 与 子表的关系, 并在主表 添加一列 <ID(自动编号)>为主键,  字段<订单ID> 取消主键,最好取消索引, 这样在本人 的 老爷电脑里运行101次修改保存 ,   才出现崩溃 , 另外电脑配置稍许好点,内存高的, 应该可以不会再出现 内存溢出了.  请下载附件在你们的电脑里 试试.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2017-7-30 09:13:29 | 只看该作者
本帖最后由 wx0000888 于 2017-7-30 09:15 编辑

网络上出现的 ACCESS 错误 '2455'      '2467'
最大可能不是两次调用 子窗体的错误, 而是请往下看:

举例:
我们正在调试这个 (  "关联字段进行链接"或"代码中使用关联字段进行关联"的主子窗体结构:  比如 主窗体 数据源是 订单 包含字段(订单ID,客户ID,订单日期,运费...) , 子窗体 数据源是 订单明细 包含字段(ID, 订单ID, 数量,单价...), 关联字段就是"订单ID" )  简单的订单查询管理系统.

  我们在调试该系统的时候 ,  原本主窗体的属性中有 "允许添加" 默认选"是" , 否则如何添加数据呢?  我们一般用主窗体中添加一条新数据后属性中"允许添加" 选"否", 而子窗体添加N条数据, 保存后, 再重新添加或修改等操作, 由于调试时出现各种错误, 会把 "允许添加" 默认选成"否"  , 这是致命的错误, 数据不再被添加, 如何新添数据呢,哪怕是只添一条, 所以网友们,在主窗体运行的 添加下面一句
Private Sub Form_Open(Cancel As Integer)

      
  Me.AllowAdditions = True

   .........



3#
 楼主| 发表于 2017-7-30 09:19:07 | 只看该作者
论坛难道不更新吗?

点击这里给我发消息

4#
发表于 2017-7-31 14:06:32 | 只看该作者
非绑定的方式 总是不太稳定。
5#
 楼主| 发表于 2017-7-31 21:04:27 | 只看该作者
tmtony 发表于 2017-7-31 14:06
非绑定的方式 总是不太稳定。

tmtony 站长, 那个ADOTRANSFORM 和 ADOBATCHFORM  , 比较稳定, 再添加的合计栏, 用起来应该没问题,
6#
 楼主| 发表于 2017-8-6 09:25:08 | 只看该作者
本帖最后由 wx0000888 于 2017-8-6 09:26 编辑

总结: 在 高版本的 ACCESS 中 (高于2007版本), 用T小宝版主 的用于主子窗体的 DAOTransForm  的类 是最完美的, 既可以不用临时窗体, 而且高版本本身自带隔行变色, 也不用自制的 自定义汇总条, 因为DAO绑定的窗体 , 可以用内置的"汇总合计"功能. 但唯一的缺陷就是,内存溢出错误'28'或死机

最终解决办法是:   删除几个引发外部程序  RaiseEvent ,   比如  RaiseEvent BeforeUnload(mblDataChange, Msg)
用其它办法,比如 <在类中>设置添加一些用于判断窗体输入是否合法的只读属性等来判断.  如子窗体的记录数必须至少有一条,否则回滚.再
结合<在窗体中>输入是否合法是否完整等的办法来解决. 目前测试下来, 没有再出现问题.   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 15:30 , Processed in 0.083600 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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