以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 条件公式问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56248)

--  作者:wumingrong1
--  发布时间:2014/9/1 22:02:00
--  [求助] 条件公式问题
我有一个“增加”按钮 如下命令:其中如果“设备编码”条件内容为空、那么在其他条件完全相同的情况下还是会新增一行、如果“设备编码”有内容、那么点击按钮后就不会再新增一行。为什么?


Dim d1 As String = e.Form.Controls("机房名称").Text
Dim t11 As String = e.Form.Controls("设备名称").Text
Dim t12 As String = e.Form.Controls("设备型号").Text
Dim t13 As String = e.Form.Controls("设备编号").Text
Dim c1 As String = e.Form.Controls("板件槽位1").Text

Dim t1 As String = e.Form.Controls("板件型号1").Text

Dim nd2 As DataRow = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\'and 板件槽位 = \'" & c1 & "\'and 板件型号 = \'" & t1 & "\'")
    If nd2 Is Nothing Then
        If c1 > "" And t1 > "" Then
            nd2 = DataTables("机房设备板件表").AddNew()
            nd2("机房名称") = d1
            nd2("设备名称") = t11
            nd2("设备型号") = t12
            nd2("设备编号") = t13
            nd2("板件槽位") = c1
            nd2("板件型号") = t1
        End If
    End If

[此贴子已经被作者于2014-9-1 22:34:47编辑过]

--  作者:程兴刚
--  发布时间:2014/9/1 22:08:00
--  

您不要问别人为什么,而是应该告诉别人您需要什么结果!


--  作者:程兴刚
--  发布时间:2014/9/1 22:10:00
--  

猜一下:

 

Dim d1 As String = e.Form.Controls("机房名称").Text
Dim t11 As String = e.Form.Controls("设备名称").Text
Dim t12 As String = e.Form.Controls("设备型号").Text
Dim t13 As String = e.Form.Controls("设备编号").Text
Dim c1 As String = e.Form.Controls("板件槽位1").Text

Dim t1 As String = e.Form.Controls("板件型号1").Text

Dim nd2 As DataRow = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\'and 板件槽位 = \'" & c1 & "\'and 板件型号 = \'" & t1 & "\'")
    If nd2 Is Nothing Then
         nd2 = DataTables("机房设备板件表").AddNew()
    end if
    If c2 > "" And t2 > "" Then
        nd2("机房名称") = d1
        nd2("设备名称") = t11
        nd2("设备型号") = t12
        nd2("设备编号") = t13
        nd2("板件槽位") = c1
        nd2("板件型号") = t1
    End If

--  作者:wumingrong1
--  发布时间:2014/9/1 22:12:00
--  
我希望实现:在以下这些条件中如果其中有任何一个条件列的内容时空的;在其他条件完全相同的情况下、也能够实现不再新增该行

"机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\'and 板件槽位 = \'" & c1 & "\'and 板件型号 = \'" & t1 & "\'"

--  作者:程兴刚
--  发布时间:2014/9/1 22:12:00
--  
不过没看见您定义的变量c2和t2
--  作者:wumingrong1
--  发布时间:2014/9/1 22:16:00
--  
应该是    If c1> "" And t1> "" Then


我以上公式的目的是如果我要新增加的内容在表中已经存在;就不再新增;但是像我表中原来已经有两条记录第一条“设备编号”有_01、第二条“设备编号”为空。那么我录入窗口中录入的其他内容都是一模一样;当“设备编号”列为_01时,公式就会默认不再新增这一条相同内容;但是如果我新增的是第二条“设备编号”是空的、那么公式就会在表中新增一行。我想实现跟第一行那样不再新增一行。公式该怎么修改?


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140901222528578.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-9-1 22:33:52编辑过]

--  作者:有点甜
--  发布时间:2014/9/1 23:53:00
--  
 3楼就是你要的代码。
--  作者:wumingrong1
--  发布时间:2014/9/2 11:08:00
--  
还是不行:
如果当“设备编号”中有内容;点击“新增板件”按钮的话就不会新增行(在这里只有“设备编号”有可能有或者没有;其他的都是会有的)

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140902110545031.jpg
图片点击可在新窗口打开查看

如果当“设备编号”中没有内容;点击“新增板件”按钮的话就会新增行 

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140902110611578.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-9-2 12:23:24编辑过]

--  作者:有点甜
--  发布时间:2014/9/2 11:12:00
--  

 例子发上来,根本理解不了你的意思。


--  作者:有点甜
--  发布时间:2014/9/2 11:33:00
--  

Dim d1 As String = e.Form.Controls("机房名称").Text
Dim t11 As String = e.Form.Controls("设备名称").Text
Dim t12 As String = e.Form.Controls("设备型号").Text
Dim t13 As String = e.Form.Controls("设备编号").Text
Dim c1 As String = e.Form.Controls("板件槽位1").Text

Dim t1 As String = e.Form.Controls("板件型号1").Text

Dim nd2 As DataRow

If d1 = "" Then
    nd2 = DataTables("机房设备板件表").Find("设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\' and 板件槽位 = \'" & c1 & "\' and 板件型号 = \'" & t1 & "\'")
Else If t11 = "" Then
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\' and 板件槽位 = \'" & c1 & "\' and 板件型号 = \'" & t1 & "\'")
Else If t12 = "" Then
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and  设备编号 = \'" & t13 & "\' and 板件槽位 = \'" & c1 & "\' and 板件型号 = \'" & t1 & "\'")
Else If t13 = "" Then
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 板件槽位 = \'" & c1 & "\' and 板件型号 = \'" & t1 & "\'")
Else If c1 = "" Then
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\' and 板件型号 = \'" & t1 & "\'")
Else If t1 = "" Then
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\' and 板件槽位 = \'" & c1 & "\'")
Else
    nd2 = DataTables("机房设备板件表").Find("机房名称 = \'" & d1 & "\' and 设备名称 = \'" & t11 & "\' and 设备型号 = \'" & t12 & "\' and 设备编号 = \'" & t13 & "\' and 板件槽位 = \'" & c1 & "\'and 板件型号 = \'" & t1 & "\'")
End If

If nd2 Is Nothing Then
    nd2 = DataTables("机房设备板件表").AddNew()
    nd2("机房名称") = d1
    nd2("设备名称") = t11
    nd2("设备型号") = t12
    nd2("设备编号") = t13
    nd2("板件槽位") = c1
    nd2("板件型号") = t1
End If