以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Accdb数据匹配  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126125)

--  作者:wumingrong1
--  发布时间:2018/10/15 9:32:00
--  [求助]Accdb数据匹配

由于我的Accdb数据表数据比较大、在进行数据匹配的时候想像SQL那样在不加载数据的情况下进行数据匹配;我的命令该怎么修改?

 

Select Case e.DataCol.name
    Case "受理号码"
        Dim dr As DataRow = DataTables("全量在线用户数据表").sqlFind("宽带账号 =  \'" & e.DataRow("受理号码") & "\' ")
        If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("区域名称") = dr("客户二级地址")
            If dr.Isnull("客户五级地址") = Nothing  Then
                e.DataRow("小区名称") = dr("客户五级地址")
            Else
                If dr.isnull("客户五级地址")  And  dr.isnull("客户四级地址") = Nothing Then
                    e.DataRow("小区名称") = dr("客户四级地址")
                Else
                    If dr.isnull("客户五级地址") = Nothing  And  dr.isnull("客户四级地址") = Nothing Then
                        e.DataRow("小区名称") = "未匹配到小区名称"
                    End If
                End If
            End  If
        End If
End Select


--  作者:有点甜
--  发布时间:2018/10/15 9:33:00
--  
代码没问题。sqlfind可以查找所有已经保存了的数据。
--  作者:wumingrong1
--  发布时间:2018/10/19 16:45:00
--  

测试不成功。我的【全量在线用户数据表】是存放在本机上的Accdb数据表、不是SQL数据表。

 

For Each dr As Row In Tables("广义万投比工单清单表").Rows
    Dim r As DataRow = DataTables("全量在线用户数据表").sqlFind("宽带账号 = \'" & dr("受理号码") & "\' ")
    If r IsNot Nothing Then
        
       If r("客户二级地址") = "仲恺高新区" Then
            dr("区域名称") = "仲恺区"
       Else
            dr("区域名称") = r("客户二级地址")
        End  If
        
        If r.Isnull("客户五级地址") = Nothing  Then
            dr("小区名称") = r("客户五级地址")
       Else
            If r.isnull("客户五级地址")  And  r.isnull("客户四级地址") = Nothing Then
               dr("小区名称") = r("客户四级地址")
            Else
                If r.isnull("客户五级地址") = Nothing  And  r.isnull("客户四级地址") = Nothing Then
                    dr("小区名称") = "未匹配到小区名称"
                End If
            End If
        End If
       
    Else
        dr("区域名称") = "未匹配到区域名称"
        dr("小区名称") = "未匹配到小区名称"
    End If
Next

[此贴子已经被作者于2018/10/19 16:47:54编辑过]

--  作者:有点蓝
--  发布时间:2018/10/19 16:53:00
--  
不管是Accdb数据表还是SQL数据表,用法都一样。上面代码没有问题,确定数据库里有符合软件的数据,数据是不是有多余的符号或者空格