Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

RecordsetClone方法不能全部复制数据?

西出阳关无故人  发表于:2012-02-15 11:04:58  
复制

用主窗体+数据表子窗体(数据分别绑定到主表、子表,主表和子表用编号字段形成一对多的关系,主窗体和子窗体也用编号字段作为链接字段)的模式,在用RecordsetClone复制子窗体数据的时候,原来能够全部复制子窗体的数据,最近不知是那里发生了变动,只能复制子窗体中可见的数据。

请问,会是什么原因导致这种情况?如何解决?

谢谢。

 

Top
西出阳关无故人 发表于:2015-01-16 15:13:46

原因不明



benhum 发表于:2015-01-22 08:19:14
复制前检查一下recordcount有没有数量或数量是否相等。

cspa 发表于:2015-01-22 09:32:58

以下引自access帮助:

RecordsetClone 属性设置是由窗体的 RecordSource 属性指定的基础查询或基础表的一个副本。例如,如果窗体基于一个查询,那么对 RecordsetClone 属性的引用与使用相同查询来复制 Recordset 对象是等效的。如果此时将筛选应用于窗体,Recordset 对象将反映筛选的结果。

 

也就是说,除非你在使用筛选前,使用RecordsetClone能够全部复制子窗体的数据。一旦你使用了筛选,那么RecordsetClone只能复制子窗体中可见的数据。

因此可能的原因是,原来你的程序是在初始打开子窗体时就使用RecordsetClone全部复制了子窗体的数据,然后再进行其他操作。后来你改成了打开窗体时先进行了某个筛选

动作,然后再使用RecordsetClone复制子窗体数据,这样RecordsetClone就只能复制子窗体中可见的数据了。

或者是你的子窗体数据源原来是表,后来改成了查询,而此查询是有条件的,因此RecordsetClone也只能反映查询结果的数据(即子窗体中可见的数据)。

access还有一个问题是,上次窗体使用的筛选,重新打开窗体时可能并没有删除,如果此时使用使用RecordsetClone可能对数据有影响。因此如果想准确拷贝数据可以使用OpenRecordset方法,用SQL语句描述数据。



总记录:3篇  页次:1/1 9 1 :