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语句)的话就可以正常插入数据了
这是为什么啊?
|