以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于行字段的重复判断咨询?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116756)

--  作者:guosheng
--  发布时间:2018/3/30 15:27:00
--  关于行字段的重复判断咨询?
表的增加行,跳转录入窗口,录入窗口的确定按钮事件:测试结果,只有一个设置为1(红色阴影),一个设置为0(红色阴影)。为什么呢?

Dim dr =Tables("工程款项支付预算部审核表").current
……
ElseIf Tables("工程款项支付预算部审核表").Compute("Count([_Identify])","合同档案编号 = \'" & dr("合同档案编号") & "\' And 产值年份 = "& dr("产值年份") &" And 产值月份 = "& dr("产值月份") &"")>1 Then
    MessageBox.Show("已经存在相同的合同及年月的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)




Dim dr =Tables("合作商基本信息表").current
If e.Form.Controls("公司名称").value Is Nothing
   messagebox.show("公司名称不能为空")
ElseIf Tables("合作商基本信息表").Compute("Count([_Identify])","公司名称 = \'" & dr("公司名称").trim() & "\' And 承办部门= \'"& user.group &"\'")> 0 Then
    MessageBox.Show("已经存在相同合作商名称的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

--  作者:有点甜
--  发布时间:2018/3/30 15:34:00
--  

Compute("count(xxx)") 统计了符合规则的行数,如果大于1,说明有2行以上;如果大于0,说明有1行以上。

 

你具体哪里不明白?


--  作者:guosheng
--  发布时间:2018/3/30 15:45:00
--  
感觉两个判断条件类似,为什么第二个只有将统计个数设置为>0,才能使得相同的行只能录入一行呢?(经过测试确实设置的统计数量不同)
如果将第二个条件也设置为>1,则可以输入两条一样的数据。
[此贴子已经被作者于2018/3/30 15:47:32编辑过]

--  作者:有点甜
--  发布时间:2018/3/30 16:05:00
--  

因为你当前编辑的是【工程款项支付预算部审核表】表。

 

你输入数据之后,此表如果有2条数据,说明重复,如果只有1条数据,就是你当前输入的数据。

 

而对于别的表,不是这样判断。