vb中输入新的数据 但是把原来的第一个数据给覆盖了,并且在数据的最后一行还出现空行

PrivateSubCommand3_Click()Dimrs_dianAsNewADODB.RecordsetDimconnAsNewADODB.ConnectionD... Private Sub Command3_Click()
Dim rs_dian As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String

If Trim(Text1.Text) = "" Then
MsgBox "电流信息不能为空", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "脉冲宽度不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "脉冲间隔不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
If Trim(Text4.Text) = "" Then
MsgBox "高压信息不能为空", vbOKOnly + vbExclamation, ""
Text4.SetFocus
Exit Sub
End If
If Trim(Text5.Text) = "" Then
MsgBox "间隙电压不能为空", vbOKOnly + vbExclamation, ""
Text5.SetFocus
Exit Sub
End If
If Trim(Text6.Text) = "" Then
MsgBox "极性信息不能为空", vbOKOnly + vbExclamation, ""
Text6.SetFocus
Exit Sub
End If
If Trim(Text7.Text) = "" Then
MsgBox "损耗信息不能为空", vbOKOnly + vbExclamation, ""
Text7.SetFocus
Exit Sub
End If
If Trim(Text8.Text) = "" Then
MsgBox "放电间隙不能为空", vbOKOnly + vbExclamation, ""
Text8.SetFocus
Exit Sub
End If
If Trim(Text9.Text) = "" Then
MsgBox "表面粗糙度值不能为空", vbOKOnly + vbExclamation, ""
Text9.SetFocus
Exit Sub
End If
If Trim(Text10.Text) = "" Then
MsgBox "序号不能为空", vbOKOnly + vbExclamation, ""
Text10.SetFocus
Exit Sub
End If
If Trim(Combo2.Text) = "" Then
MsgBox "请选择标准范围", vbOKOnly + vbExclamation, ""
Combo2.SetFocus
Exit Sub
End If

conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path & "\表1.mdb"
sql = "select * from 电火花加工 where 序号='" & Text10.Text & "'"
rs_dian.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_dian.EOF Then

rs_dian.AddNew
rs_dian.Fields(0) = Trim(Text10.Text)
rs_dian.Fields(1) = Trim(Text1.Text)
rs_dian.Fields(2) = Trim(Text2.Text)
rs_dian.Fields(3) = Trim(Text3.Text)
rs_dian.Fields(4) = Trim(Text4.Text)
rs_dian.Fields(5) = Trim(Text5.Text)
rs_dian.Fields(6) = Trim(Text6.Text)
rs_dian.Fields(7) = Trim(Text7.Text)
rs_dian.Fields(8) = Trim(Text8.Text)
rs_dian.Fields(9) = Trim(Text9.Text)
rs_dian.Fields(10) = Trim(Combo2.Text)
rs_dian.Update
MsgBox "添加零件信息成功!", vbOKOnly, ""
rs_dian.Close

Exit Sub
End If

End Sub
展开
 我来答
匿名用户
2013-07-25
展开全部

仿照你的代码做了一个 测试,并无问题,如果需要就下载看看。


我推测问题并不在这段代码里面,或者你的代码已经修改过了和数据库不符。

注意到你的截图序号栏 应该是 数字类型,

可是你代码中序号却是通过文本类型查询的,

"select * from 电火花加工 where 序号='" & Text10.Text & "'"


如此,根据你提供的信息还无法做出判断

追问

是不是access的数据格式的问题  

如果是  那怎么办

我是小白  第一次接触VB

追答

将所有的数据类型都转成 文本,再测试一下,

数据保存应该不会出错。


如果,你 需要使用现在的 数据类型,那么在给数据库赋值的时候必须做一个转换。

比如: 


   rs_dian.Fields(0) = Trim(Text10.Text)

这个显然是序号的字段,就要改成:

 rs_dian. Fields(0) = val(Trim(Text10.Text) )


而检查序号唯一性的判断:

"select * from 电火花加工 where 序号='" & Text10.Text & "'"

要改成:

"select * from 电火花加工 where 序号=" & val(Text10.Text)


其他的字段如果是数值格式,也需要转换,举个例子:

rs_dian("间歇电压")=val(trim(Text5.text))


再给你一个例子吧,修改后,适应数字字段:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式