Access交流中心

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

表中记录追加到另一个表中怎样操作最好?

李军民  发表于:2009-02-23 12:17:12  
复制

我用一上个FOR循环,总是最后一条记录添加不到新的表中,请教高手们,该如何是好?

 

Top
钱玉炜 发表于:2009-02-23 12:26:22
可能跟你的循环次数有关系,检查一下是否是少循环了一次

十段 发表于:2009-02-23 12:30:57

从楼主刚才所说的情况,估计你还没考虑到追加时数据有没有重复性的问题,建议楼主参考一下[多条件不重复追加查询制作步骤]http://www.accessoft.com/article-show.asp?id=3060

 



李军民 发表于:2009-02-23 16:19:26

我是将一个表的记录全部复制到另一个表中,用FOR I=1 TO RS.RECORDCOUNT  ........ NEXT I  这样的循环,次数不会少的!我就不明白为什么总是最后一条复制不过去?



sosopain 发表于:2009-02-23 17:34:36

用查询里面的追加查询..所见即所得



sosopain 发表于:2009-02-23 17:38:26

你的记录指针是怎么安排的呢? 不写出来没人能给你解决问题.

 

 



天行健客 发表于:2009-02-24 07:43:22

试试 ,循环次数为用FOR I=1 TO RS.RECORDCOUNT+1,应该是这的问题。  



李军民 发表于:2009-02-24 08:27:57

表一:rs,表二:rs1,表一加到表二,rs.movefirst

                              for i=1 to rs.recordcount

                              rs1.addnew

                                rs1("")=rs("")

                                   ........

                                rs1.update

                                rs.movenext

                               next i

 

 

 

 

 

把循环次数改为1到rs.recordcount+1我也试过不行!



sosopain 发表于:2009-02-24 10:06:01


sosopain 发表于:2009-02-24 10:06:19


sosopain 发表于:2009-02-24 10:08:21
返回在 Recordset 对象中访问的记录数,或者返回表类型 Recordset 对象或 TableDef 对象中的记录总数。只读 Long

语法

表达式.RecordCount

表达式   一个代表 Recordset 对象的变量。

说明

使用 RecordCount 属性可以了解 RecordsetTableDef 对象中已经访问的对象数。在访问完所有记录之前,RecordCount 属性不指示动态集类型、快照类型或仅向前类型的 Recordset 对象中包含的记录数。一旦访问完最后一条记录,RecordCount 属性就会指示 RecordsetTableDef 对象中未被删除的记录的总数。若要强制访问最后一条记录,请对 Recordset 对象使用 MoveLast 方法。您还可以使用 SQL Count 函数确定查询将返回的大概记录数。

  注释
使用 MoveLast 方法填充新打开的 Recordset 会对性能造成负面影响。除非在您打开 Recordset 时必须得到准确的 RecordCount,否则最好等到使用代码的其他部分填充完 Recordset 之后,再检查 RecordCount 属性。

由于应用程序删除了动态集类型 Recordset 对象中的记录,因此 RecordCount 属性的值将减小。但是,其他用户删除的记录不受 RecordCount 属性的影响,除非当前记录 (当前记录:记录集内可以从中修改或检索数据的记录。一个记录集只有一条当前记录,但记录集也可以没有当前记录,例如,在记录已经从动态集类型的记录集内删除之后,即属于此种情况。)定位到已删除的记录。如果执行的事务处理 (事务:对数据库的数据和架构所作的一系列更改。)影响 RecordCount 属性设置,之后您又回滚了该事务,则 RecordCount 属性将不会反映其余记录的实际数目。

快照类型或仅向前类型 Recordset 对象的 RecordCount 属性不受基础表中的更改的影响。

如果 RecordsetTableDef 对象不含记录,则其 RecordCount 属性设置为 0。

Recordset 对象使用 Requery 方法将会重置 RecordCount 属性,如同重新执行查询一样。



sosopain 发表于:2009-02-24 10:08:55

用while not rs.eof 来解决



李军民 发表于:2009-02-24 11:31:16
WHILE NOT RE.EOF()我试过两个地方,一个可以,一个还是最后一条记录复制不过去!谢谢

sosopain 发表于:2009-02-24 23:00:50

用debug.print跟踪一下.



李军民 发表于:2009-02-25 08:25:53

用debug.print跟踪一下.

这个大概要如何用,请明教!谢谢



天行健客 发表于:2009-02-26 19:11:03

fo next循环有以下特点,比如下面的例子:

    for i=1 to 10

         .

        .

    next i

    debug.print  i

应该输出的是 11,而不是10

 

我也曾遇到这样问题,其后,我就尽量用以下的循环,比较好用

  rs.movefirst

  do until rs.Eof

     rs.movenext

   loop



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