设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5132|回复: 18
打印 上一主题 下一主题

[模块/函数] 在Recordset中Addnew问题,请高人指点

[复制链接]
跳转到指定楼层
1#
发表于 2015-2-7 20:51:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在Recordset中Addnew问题,请高人指点


  在Recordset中Addnew问题,请高人指点

想在表a中 “x" 字段插入1,2,3-----, 结果 .AddNew处报错

Sub test()
Dim res As ADODB.Recordset
Set res = New ADODB.Recordset
res.Open "a", CurrentProject.Connection, adOpenDynamic, adLockBatchOptimistic
With res
For i = 1 To 100
.AddNew
.Fields("x") = i
Next i
res.UpdateBatch
End With
Set res = Nothing
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2015-2-7 21:19:25 | 只看该作者
看看提示的是什么错误
3#
 楼主| 发表于 2015-2-7 21:26:34 | 只看该作者
tmtony 发表于 2015-2-7 21:19
看看提示的是什么错误


在ADDNEW处报错,这个提示。 请指点下,如何解决。 非常感谢

本帖子中包含更多资源

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

x

点击这里给我发消息

4#
发表于 2015-2-7 21:43:05 | 只看该作者
附件传上来,我给你调试一下,我以前也碰到多这样的事,忘了解决办法了
5#
 楼主| 发表于 2015-2-7 21:52:07 | 只看该作者



谢谢各位的回帖。 附件奉上  请大家指点一下{:soso_e100:}

本帖子中包含更多资源

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

x

点击这里给我发消息

6#
发表于 2015-2-7 22:24:19 | 只看该作者
olderdream2007@ 发表于 2015-2-7 21:52
谢谢各位的回帖。 附件奉上  请大家指点一下

Sub test()
Dim res As ADODB.Recordset
Set res = New ADODB.Recordset
res.Open "a", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With res
For i = 1 To 100
.AddNew
.Fields("x") = i
Next i
res.UpdateBatch
End With
Set res = Nothing
End Sub

点击这里给我发消息

7#
发表于 2015-2-7 22:25:04 | 只看该作者
连接字符串问题
8#
 楼主| 发表于 2015-2-7 23:18:53 | 只看该作者
zhidao 发表于 2015-2-7 22:25
连接字符串问题

谢谢高人的指点。似乎第二个参数用adOpenDynamic 比用adOpenKeyset快许多,不直达啥原因。
Sub tests()
Dim res As ADODB.Recordset
Set res = New ADODB.Recordset
'res.Open "a", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
res.Open "a", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

With res
For i = 1 To 100
.AddNew
.Fields("x") = i
Next i
res.UpdateBatch
End With
Set res = Nothing
End Sub


这个字符串 自己理解下(现在只是照抄),下面是accessoft搜到的东东 自己消化中,太高兴了。谢谢zhidao的热心帮助

帮学员解答ADO参数意思/adOpenKeyset/adLockOptimistic


时 间:2012-04-26 16:35:48
作 者:风行   ID:16058  城市:江阴  QQ:2851379734点击这里给风行发消息
摘 要:请教一下:rst.Open "tblVoucher", conn, adOpenKeyset, adLockOptimistic什么意思
正 文:


锡林郭勒--海涛(17755315) 11:35:15
请教一下:rst.Open "tblVoucher", conn, adOpenKeyset, adLockOptimistic什么意思
UMVsoft技术服务12(2430898254) 11:35:56
简单理解为打开表tblVoucher
UMVsoft-张志(3059255) 11:46:06
这个参数有四个值分别是:
adOpenForwardOnly 表示只允许在记录集内的记录间往前移动。这个是缺省值。
adOpenKeyset 反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。
adOpenDynamic 反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录
adOpenStatic 不反映其它用户对记录所做的修改,添加,删除动作。
这四个值VBSCRIPT预定义位
adOpenForwardOnly = 0
adOpenKeyset = 1
adOpenDynamic = 2
adOpenStatic = 3

lockType 表示当打开记录集时,数据提供者用于锁定数据库的类型:
adLockReadOnly 数据不能改变,这是缺省值!
adLockPessimistic 数据提供者在开始编辑数据的时候锁定记录
adLockOptimistic 仅当调用update方法时,数据提供者锁定记录
adLockBatchOptimistic 用于批处理修改
他们的常量值定义分别是:
adLockReadOnly = 1
adLockPessimistic = 2
adLockOptimistic = 3
adLockBatchOptimistic = 4
  
UMVsoft-张志(3059255) 11:47:07
adLockOptimistic 仅当调用update方法时,数据提供者锁定记录
UMVsoft技术服务12(2430898254) 11:47:27
adLockReadOnly   1   缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法     
   adLockPrssimistic   2   当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。     
   adLockOptimistic   3   当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。     
   adLockBatchOptimistic   4   当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作
锡林郭勒--海涛(17755315) 11:49:35
谢谢老师,我研究一下。
UMVsoft-张志(3059255) 11:50:48
其实不需要研究更深入,知道是这么回事就行了。
我也是想弄更清楚点时,才百度的,其实也记不住意思
但这并不影响我开发软件
锡林郭勒--海涛(17755315) 11:52:42
记住其含义更容易帮助记忆这些代码,否则马上就忘记了。
UMVsoft-张志(3059255) 11:53:54
是的

点击这里给我发消息

9#
发表于 2015-2-8 13:55:03 | 只看该作者

点击这里给我发消息

10#
发表于 2015-2-8 16:42:57 | 只看该作者
仅仅是向表中添加数据,建议用SQL语句。
INSERT INTO  ......
大多数场合,执行效率更高。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 14:54 , Processed in 0.103111 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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