以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  移除重复的行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=151469)

--  作者:BG小白
--  发布时间:2020/6/23 22:04:00
--  移除重复的行
Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "SPDM,GG1DM"
For Each dr As DataRow In DataTables("SPCKB").Select("", "SPDM,GG1DM")
   
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
    End If
    If flag OrElse pdr Is Nothing Then
        If count > 1 Then
            idx &= idx_temp
        End If
        count = 1
        idx_temp = ""
    Else
        count += 1
        idx_temp &= dr("_Identify") & ","
    End If
   
    pdr = dr
Next

If count > 1 Then
    idx &= idx_temp
End If

Tables("SPCKB").filter = "_Identify in (" & idx.trim(",") & ")"

DataTables("SPCKB").RemoveFor("_Identify In (" & idx.trim(",") & ")")  \'移除重复行

外部表,没有_Identify这个字段我
图片点击可在新窗口打开查看此主题相关图片如下:52.png
图片点击可在新窗口打开查看
该怎么修改呢

--  作者:有点蓝
--  发布时间:2020/6/23 22:36:00
--  
使用2个in,如:

Dim idx As String = "-1,"
Dim idx2 As String = "-1,"
Dim idx_temp As String = ""
Dim idx2_temp As String = ""
……
    Else
        count += 1
        idx_temp &= dr("SPDM") & ","
        idx2_temp &= dr("GG1DM") & ","
    End If
……
If count > 1 Then
    idx &= idx_temp
    idx2 &= idx2_temp
End If
Tables("SPCKB").filter = "SPDM in (" & idx.trim(",") & ") and GG1DM in (" & idx2.trim(",") & ")"
……

--  作者:BG小白
--  发布时间:2020/6/24 3:07:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
未找到列 [AFBN004]。
这里会提示错误,什么原因呢?

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


--  作者:有点蓝
--  发布时间:2020/6/24 8:44:00
--  
字符列加上单引号

Dim idx As String = ""
Dim idx2 As String = ""



idx_temp &= dr("SPDM") & ","

改为

idx_temp = idx_temp & ",\'" dr("SPDM") & "\'"

--  作者:BG小白
--  发布时间:2020/6/24 15:53:00
--  
保存的时候报错
图片点击可在新窗口打开查看此主题相关图片如下:1521.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/6/24 15:53:10编辑过]

--  作者:有点蓝
--  发布时间:2020/6/24 15:56:00
--  
idx_temp = idx_temp & ",\'" & dr("SPDM") & "\'"
--  作者:BG小白
--  发布时间:2020/6/24 16:35:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:
详细错误信息:
语法错误:“,”运算符前缺少操作数。


--  作者:BG小白
--  发布时间:2020/6/24 16:37:00
--  
我修改了一下idx_temp = idx_temp & ",\'" & dr("SPDM") & "\'"
把,删除了,就好了,没有问题吧
idx_temp = idx_temp & "\'" & dr("SPDM") & "\'"
[此贴子已经被作者于2020/6/24 16:37:21编辑过]

--  作者:有点蓝
--  发布时间:2020/6/24 16:45:00
--  
逗号不能少

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm
msgbox("SPDM in (" & idx.trim(",") & ") and GG1DM in (" & idx2.trim(",") & ")")
Tables("SPCKB").filter = "SPDM in (" & idx.trim(",") & ") and GG1DM in (" & idx2.trim(",") & ")"