以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  模糊查询出错的问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103136)

--  作者:zsslly
--  发布时间:2017/7/1 10:33:00
--  模糊查询出错的问题?
我有一个表之前是内部表,表中的内容很多,我设计了一个“模糊查询窗口”来进行模糊查询,窗口加载代码为:

 \'\'  Tables("设计客户模糊查询_Table1").Fill("select 编号,客户姓名 ,联系电话,小区地址,市场部,设计师 fro m{峰和设计部} where [_Identify] > 0",True)     \'\'

前几天我把项目改成局域网的模式,模糊查询不能用了,显示代码出错,我查了一下帮助文件,是不是现在的表变成了外部表,所以代码不对了,不知道怎么改,求指点?



--  作者:zsslly
--  发布时间:2017/7/1 10:34:00
--  
如图:
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170701095849.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/7/1 10:48:00
--  
Tables("设计客户模糊查询_Table1").Fill("select 编号,客户姓名 ,联系电话,小区地址,市场部,设计师 fro m{峰和设计部} where [_Identify] > 0","数据源名称",True) 
--  作者:zsslly
--  发布时间:2017/7/1 11:00:00
--  
Dim t As Table =Tables("设计客户模糊查询_Table1")
Dim py,Lm,Ts, Bm,sql,Lb,sl As String
Dim Ls As New List(Of Integer)
Dim Lss As New List(Of String)
Static st As String

Dim drs As New List(of DataRow)                        \'定义一个DataRow行的集合
Ts = "编号,客户姓名,联系电话,小区地址,市场部,设计师"                                    \'查询相关列
Bm = "峰和设计部"
If st = e.sender.Text.ToUpper Then
    Return
Else
   st = e.sender.Text.ToUpper
End If    
e.sender.Text =  st
Sendkeys.Send("^{END}")                                    \'光标定于输入框最后

drs = DataTables(Bm).Select("客户姓名 > \'\'")
\'赋值drs=员工表--姓名列不为空的 DataRow行
If drs.count > 0 Then                                             \'如drs行数>0,执行...
    If st IsNot Nothing Then                                    \'如输入框内容不为空,执行...
        For Each Lm In Ts.split(",")                            \'遍历查询相关列
            For Each dr As DataRow In drs                   \'遍历所有行
                py = GetPY(dr(Lm),True)                       \'赋值py = 查询行查询列的简拼
                If dr(Lm).Tostring().IndexOf(st)> -1 OrElse py.IndexOf(st) > -1 Then
                                                                              \'如查询行查询列内容(或简拼)包含输入框内容,执行...
                    If Ls.Contains(dr("_Identify")) = False Then    \'如不包含则增加
                        ls.Add(dr("_Identify"))
                    End If                   
                    If Lss.Contains(dr(Lm)) = False Then
                        Lss.Add(dr(Lm))
                    End If
                    
                End If
            Next
        Next
        If Ls.count > 0 Then
            For Each n As Integer In Ls
                sql+ = ","  & n                                                             
            Next
            sql = "[_Identify] In(" & sql.Trim(",") & ")"                            \'包含主键[_Identify]内容
            sql = "select " & Ts & " fr om{" & Bm & "} where " & sql          \'合成SQL语句
            t.Fill(sql,True)                                                                    \'生成SQL查询表
            For Each sl In Lss
                lb+ = "|"  & sl
            Next
            e.sender.ComboList = lb                                                      \'形成输入框列表
        Else
            MessageBox.show("抱歉,数据库中没有您想查询的信息!" )
            \'e.sender.value =  ""
            e.sender.Select
            Return           
        End If      
    End If
End If



请问老师,我这段代码里是不是也要添加数据源,添在那个位置呢?

--  作者:有点蓝
--  发布时间:2017/7/1 11:08:00
--  
 t.Fill(sql,"数据源名称",True)
--  作者:zsslly
--  发布时间:2017/7/1 11:39:00
--  
谢谢老师