以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  按条件批量新增行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=193022)

--  作者:1234567
--  发布时间:2024/8/10 10:12:00
--  按条件批量新增行
.NET Framework 版本:4.0.30319.1
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
Syntax error: Missing operand after \'AndAlso\' operator.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


--  作者:有点蓝
--  发布时间:2024/8/10 10:31:00
--  
表达式里使用and:http://www.foxtable.com/webhelp/topics/0102.htm

不用AndAlso,AndAlso是代码的语法,和表达式不是一回事:http://www.foxtable.com/webhelp/topics/0220.htm

另外多条件建议使用这种用法:http://www.foxtable.com/webhelp/topics/1058.htm

--  作者:1234567
--  发布时间:2024/8/10 12:40:00
--  

Dim Filter As String
With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        Filter = "条件1 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DropBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "条件2 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DropBox3")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "条件3 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DropBox4")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "条件4 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DropBox5")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "条件5 = \'" & .Value & "\'"
    End If
End With


If Filter > "" Then
    Tables("工艺库").Filter = Filter
End If

For Each dr As Row In Tables("工艺库")


  If dr.IsNull("新增第一行工序内容") = False Then
     Dim r1 As Row = Tables("表A").AddNew
    r1("工序") = dr("新增第一行工序内容")
 End If

  If dr.IsNull("新增第二行工序内容") = False Then
     Dim r2 As Row = Tables("表A").AddNew
    r2("工序") = dr("新增第二行工序内容")
 End If

  If dr.IsNull("新增第三行工序内容") = False Then
     Dim r3 As Row = Tables("表A").AddNew
    r3("工序") = dr("新增第三行工序内容")
 End If

  If dr.IsNull("新增第四行工序内容") = False Then
     Dim r4 As Row = Tables("表A").AddNew
    r4("工序") = dr("新增第四行工序内容")
 End If

  If dr.IsNull("新增第五行工序内容") = False Then
     Dim r5 As Row = Tables("表A").AddNew
    r5("工序") = dr("新增第五行工序内容")
 End If
  
Next


--  作者:1234567
--  发布时间:2024/8/10 12:45:00
--  

当我把筛选条件设定为条件1=1时候,只选择条件1=1,条件2=空,条件3=空......,如何排除掉条件1=1、条件2=2的这组数据


--  作者:有点蓝
--  发布时间:2024/8/10 14:35:00
--  
没看懂,请截图举例说明一下
--  作者:1234567
--  发布时间:2024/8/10 15:39:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:1234567
--  发布时间:2024/8/10 15:41:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


--  作者:1234567
--  发布时间:2024/8/10 15:50:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2024/8/10 16:26:00
--  
以下是引用1234567在2024/8/10 15:39:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


Dim Filter As String
With e.Form.Controls("DropBox1")
    If .Value IsNot Nothing Then
        Filter = "条件1 = \'" & .Value & "\'"
    Else
        Filter = Filter & "条件1  is null " 
    End If
End With
With e.Form.Controls("DropBox2")
    If Filter > "" Then
        Filter = Filter & " And "
    End If
    If .Value IsNot Nothing Then
        Filter = Filter & "条件2 = \'" & .Value & "\'"
    Else
        Filter = Filter & "条件2  is null " 
    End If
End With
……其它条件参考自己改

--  作者:有点蓝
--  发布时间:2024/8/10 16:27:00
--  
以下是引用1234567在2024/8/10 15:50:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


这些是字符列,如果不使用单引号,表达式会统一转换为数字进行比较,有不能转换为数字的字符就会出错。加上单引号就没有问题了

Tables("工艺库").Filter = "条件1 = \'" & t1 & "\' And 条件2 = \'" ...

[此贴子已经被作者于2024/8/10 16:42:29编辑过]