设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: ycxchen
打印 上一主题 下一主题

[ADO/DAO] ADO语句

[复制链接]
11#
发表于 2009-1-27 13:25:54 | 只看该作者
For i = j To old_rs.Fields.Count - 1
这样是用来循环的,i是循环的计数器。比如for i=0 to 2,那么就是循环三次。

.Fields(i)
第一次循环,就是
.Fields(0)代表的是记录集的第一字段值,

第二次循环,就是
.Fields(1)代表的是记录集的第二字段值,

第三次循环,就是
.Fields(2)代表的是记录集的第三字段值,

从中可以看出,
当i=0时,代表的是记录集的第一字段值
当i=1时,代表的是记录集的第二字段值
当i=2时,代表的是记录集的第三字段值
那么就是说.Fields(i)代表的是记录集的第i+1字段值。
12#
发表于 2009-1-27 16:12:12 | 只看该作者
阐述严谨!
13#
 楼主| 发表于 2009-1-27 18:15:52 | 只看该作者
十二万分多谢6D的执手指教!我明白了,For i = j To old_rs.Fields.Count - 1是取得字段数,而Fields(i)就是取得记录集的字段值。重新看了一下例子,还是有三方面问题请教:
1、为什么用For i = j To old_rs.Fields.Count - 1取得字段数要减去一的?
2、在一楼的代码中,没有用于追加的SQL语句,但运行后也能将数据追加到临时表的?
3、导入时会提示出错,在一楼的代码中是否还不完善?
盼指教

本帖子中包含更多资源

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

x
14#
发表于 2009-1-27 19:47:19 | 只看该作者
一、因为ADO的Recordset中的字段与源表一一对应,并且第一个字段的id号是0,第二个是  1,所以最后一个是.fFields.Count-1。
二、13、new_rs.AddNew     该语句在new_rs中追加了一空行
     在以下的循环体中逐字段将old_rs各字段的值赋给了new_rs对应字段
      18、 new_rs.Update     该语句将new_rs的字段值变化更新到临时表
三、导入时提示出错。因尚未用过,不敢妄评。

[ 本帖最后由 koutx 于 2009-1-27 19:49 编辑 ]
15#
发表于 2009-1-28 07:30:48 | 只看该作者
3、导入时会提示出错,在一楼的代码中是否还不完善?
表设计中,编号为自动编号,姓名有索引(无重复)
当您导入同样的编号和姓名时当然会出错。
如果,将导入方式更改为替换旧数据则不会产生此错误。
16#
 楼主| 发表于 2009-1-28 09:47:22 | 只看该作者
万分多谢6D及KOUTX的执手指教!我又增长了VBA知识,向你们这些高手学习!
17#
发表于 2009-1-30 15:39:03 | 只看该作者
学习中。
18#
 楼主| 发表于 2009-1-30 16:47:55 | 只看该作者
看来,追加还是用SQL好
19#
发表于 2009-1-30 16:53:16 | 只看该作者
用SQL做insert,生成这个SQL语句太繁琐,不如直接用recordset.addnew方便。直接赋值。不需要做特殊处理。

http://www.office-cn.net/vvb/att ... arY2lHG%2FJbcmZNhpQ ADO手册





*****************
*  一切皆有可能 *
*****************


QQ群48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.office-cn.net .

http://www.office-cn.net/home/space.php?uid=141646 .
20#
 楼主| 发表于 2009-1-30 17:07:56 | 只看该作者
谢谢楼上的朋友!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 18:46 , Processed in 0.091957 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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