rs.open后插入新记录出现问题

[复制链接]
查看11 | 回复1 | 2010-7-4 16:12:27 | 显示全部楼层 |阅读模式
Dim conn As Connection
Dim rs As Recordset
Set conn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Dim SQL As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\vb项目\test\bonus.mdb;Persist Security Info=False"
Dim invoice, idcard, name, phone As String
Dim sum As Long
invoice = tInvoice.Text
idcard = tIdcard.Text
name = tName.Text
phone = tPhone.Text
sum = Fix(tSum.Text / 200)
Dim k As Long
SQL = "select * from t_basic"
rs.Open SQL, conn, 3, 3
For k = 0 To (sum - 1) '循环插入数据

rs.AddNew

rs(1).Value = tInvoice.Text

rs(2).Value = tIdcard.Text

rs(3).Value = tName.Text

rs(4).Value = tPhone.Text
Next k
rs.close
Set rs = Nothing
conn.Close
Set conn = Nothing
代码如上
如果num=1也就是循环插入操作只执行一次的话,则回插入一条空的,但那行却被用掉了,如果num为2以上则插入num-1条,但第一次循环插入的数据却不见了
也就是说如果插入到一个空的数据库的话
num=3时
数据库里只有2行数据
而且这2行的主键分别为2,3
id=1这行就不见了
还有就是最后rs.close这里会报错,说"此环境下不允许操作"
如果改用conn.Execute(insert语句)的话就可以正常插入数据了
这是为什么啊?

回复

使用道具 举报

千问 | 2010-7-4 16:12:27 | 显示全部楼层
这是你添加之后没有rs.update 就直接关闭导致的错误 ]For k = 0 To (sum - 1) '循环插入数据
rs.AddNew
rs(1).Value = tInvoice.Text
rs(2).Value = tIdcard.Text
rs(3).Value = tName.Text
rs(4).Value = tPhone.Textrs.updateNext k
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行