VB数据库主索引重复如何写

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:15:54
如何在以下代码内添加,
Private Sub Command10_Click() '保存按钮

Adodc1.Recordset.AddNew
'将文本框中用户输入的各个字段取值填入相应字段
Adodc1.Recordset.Fields("材料代号") = text1.Text
Adodc1.Recordset.Fields("材料名称") = Text2.Text
Adodc1.Recordset.Fields("材料比重") = Text3.Text
Adodc1.Recordset.Fields("排序位置") = Text4.Text
Adodc1.Recordset.Fields("备注信息") = Text5.Text
Adodc1.Recordset.Update
Adodc1.RecordSource = "select * from 材料信息表"
Adodc1.Recordset.Fields("材料代号") = text1.Text
这个是主索引
我主要是想如果出现主索引重复后自动报错,自动报错,怎么样加代码进去, 我有加过一段代码,可是不管是否重复都会报错,以下是代码

Private Sub Command10_Click() '保存按钮
On Error GoTo errorhandler: '如果出现主索引重复的错误,刚跳转到错误处理部分
Adodc1.Recordset.AddNew
'将文本框中用户输入的各个字段取值填入相应字段
Adodc1.Recordset.Fields("材料代号") = text1.Text
Adodc1.Recordset.Fields("材料名称") = Text2.Text
Adodc1.Recordset.Fields("材料比重") =

既然是“材料信息表”,那么应该不会有重复的“材料代号”吧,那么只要在写入之前对text1.Text的内容进行一下判断,如果有重复的就跳过去不写入数据库就是了。
如果必须要写入数据库,那只能说这个数据设计的有问题,主索引选的不对。如果所有的字段都有可能有重复的,那么就应该建立一个序号字段,可以是自动编号的那种,也可以是数字型的然后自己写序号。
总之,主索引是不应该有重复的才对。

晕啊,我不是说“在写入之前对text1.Text的内容进行一下判断,如果有重复的就跳过去不写入数据库就是了”,你要先用text1.Text的内容在数据库中查询一遍,如果有查询结果,那么就说明主索引重复,不要什么都用Error处理啊,这个还用不上Error
至于你说的不管是否重复都报错,我怀疑是errorhandler: MsgBox "材料代号是主索引,不能重复", , "错误提示"
这句代码不对,一般都分成两句
errorhandler:
MsgBox "材料代号是主索引,不能重复", , "错误提示"
这样再试试