vb的Recordset.addnew和delete

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:52:58
比如说我运行的时候delete了第三条记录之后
再addnew1条新记录
然后新记录插进了第三行!
为什么呢??有什么办法解决?
Private Sub Command1_Click()
Dim d As Integer
Dim i As Integer
Adodc1.RecordSource = "select * from equipment"
Adodc1.Refresh

If Text1(0).Text = "" And Text1(1).Text = "" Then
MsgBox ("设备编码或设备名称没有填")
Exit Sub
End If
If Combo1.Text = "请选择" Then
MsgBox ("设备分类还没选择")
Exit Sub
End If
Adodc1.Recordset.MoveLast
d = Adodc1.Recordset.Fields(0)

Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = d + 1

For i = 0 To 4
Adodc1.Recordset.Fields(i + 1) = Text1(i).Text
Next
Adodc1.Recordset.Fields(6) = Combo1.Text
For i = 6 To 9
Adodc1.Recordset.Fields(i + 1) = Val(Text1(i).Text)
Next
Adodc1.Recordset.Fields(11) = DTPicker1.Value
For i = 11 To 15
Adodc1.Recordset.Fields(i + 1) = Text1(i).Text
Next

要养成习惯,addnew或者delete之后接着update
另,四级的人了你好意思来个“悬赏分:0”
=========================补充===========
刚刚确实看的不对
你中间空格的地方应该是DELETE代码吧,然后你想新增的是一个要插一个17列的数据
会不会是删除之后没有更新造成的结构
你在你删除的代码之后加上一个update
然后在ADDNEW之前refresh一下试试看

是不是添加的代码缺少rs.movelast
意思就是移动到最后一行然后在添加。
如果删除了记录的话应该也有一条语句。
代码意思是更新好象是refresh1楼的UPDATE应该可以……
时间太长了忘了
你也真好意思0分问问题了!

Adodc1.Recordset.MoveLast (把这句放到这里试试,IF的上面)
If Text1(0).Text = "" And Text1(1).Text = "" Then
{
If Text1(0).Text = "" And Text1(1).Text = "" Then
MsgBox ("设备编码或设备名称没有填")
Exit Sub
End If
If Combo1.Text = "请选择" Then
MsgBox ("设备分类还没选择")
Exit Sub
End If
}这段代码应该放在ADDNEW那句后面吧?