Data1.Recordset 做入库的系统 进来看看

来源:百度知道 编辑:UC知道 时间:2024/06/30 22:23:08
目的是已经有了的产品则数量增加
之前没有的产品则创建新记录
但现在输新记录的话数量没有增加而是增加了一条新记录
此外还请指出有什么不好的地方
谢谢
Private Sub Command1_Click()
On Error Resume Next
Dim Text As Long
Data1.Refresh
Data1.Recordset.FindFirst "商品编号 ='" & Text & "'"
If Data1.Recordset.NoMatch Then
Data1.Recordset("商品名称") = Text2.Text
Data1.Recordset("数量") = Val(Text4.Text)
Data1.UpdateRecord
Else
Data2.Recordset.Edit
Data2.Recordset("数量") = Val(Label4.Caption) + Val(Text4.Text)
Data1.UpdateRecord
MsgBox "操作成功"
End If
End Sub

你的这句话用错了:
Data1.Recordset.FindFirst "商品编号 ='" & Text & "'"
应该改成:Data1.Recordset.FindFirst "商品编号 =" & format (Text)
因为 text 是long型的。

此外,On Error Resume Next 用的不好。因为,这样做会掩盖所有的错误,包括上面你犯的数据类型不统一的错误,建议
ON ERROR GOTO XXX。(xxx在sub的最后)

xxx:
msgbox “错误”。
endsub
还有其他的问题,如数据库如果为空会出现什么后果?整体来将,想的不够全面。

我是一个学生也是vb刚入门还没有进展的新手
Data1.Recordset.AddNew ‘添加新纪录

----------------------------------------------
"select * from 表名 where name='" & text1.text &"'"
----------------------------------------------
Data1.Recordset.FindFirst ("name='") & Text1.Text & "'"
-----------------------------------------------
Data1.Recordset.AddNew ‘添加新纪录
-----------------------------------------------
Data1.Recordset.Delete ’删除纪录
----------------------------------------------
Data1.Refresh ‘刷新数据控件