运行结果,没用重复的时候,也会出来现世商品重复的消息框。之后我打开access数据库看,这条数据也在里面。

用SSTAB转换商品添加表和供应商添加表
tab1是商品 tab2是工厂
保存产品按钮在tab1 上
商品表的数据控件用的data,工厂用的是adodc

显示红色字编码有误

代码如下:

[size=3]Private Sub Command3_Click() '保存产品按钮
If Text2(1).Text = "" Or Text2(3).Text = "" Then '如果商品编码或商品名称为空则
MsgBox "  红色项目为必填项  ! ", 0, "提示信息"
ElseIf IsNumeric(Text2(5)) = False Or IsNumeric(Text2(8)) = False Then '如果销售价或批发价不是数字则
MsgBox "  销售价和批发价只能填数字 ! ", 0, "提示信息"
Else
  [color=FF0000]Data1.Recordset.FindFirst "[商品名称]=" + "'" + Text2(3).Text + "'" [/color] '检查商品名称是否重复
   If Data1.Recordset.NoMatch Then   '没查询无结果则
      Data1.Recordset.Update   '添加数据
      Data1.Refresh            '更新数据
      Data1.Recordset.MoveLast    '移到数据末
      X = MsgBox("  数据已保存,是否为其添加供应商?", 1, "提示信息")      '并提供消息框
      If X = 1 Then                             '如果选择确定
        SSTab1.Tab = 1                             '则供应商选项卡激活
        Adodc1.Recordset.AddNew                    'adodc1(供应商)添加数据
        Text1(0).Text = Text2(3).Text              '供应商表中商品名=goods表中商品名
        Text1(4).SetFocus                          '工厂名空格获得焦点
           If Adodc1.Recordset.RecordCount = 0 Then     '如果供应商表中数据数为0
              Label2.Caption = "2001001"                '则标签2的文字显示为2001001(标签2对应供应商表的记录编码字段)
           Else
              Label2.Caption = CStr(Adodc1.Recordset.RecordCount + 2001001)  '如果供应商表有数据,则label2的文字显示数据总数加上2001001的和
           End If
       End If
   Else                              '如果查询有结果
    MsgBox "商品名称重复,请重新输入!", 0, "提示信息" '商品名称重名提示
    Text2(3).SetFocus
   End If
End If
End Sub[/size]