以文本方式查看主题

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

--  作者:积水成渊
--  发布时间:2017/7/18 23:04:00
--  [求助]查询问题
想弄个全表查找的窗口,求助好久,发现还是没有搞定,求老师帮忙改改代码,下面的代码已经可以实现全表查找内容的替换,而我要实现的功能是不要替换,只要定位查找内容的位置就可以了。该怎么修改代码:
Dim s1 As String = "111"
Dim s2 As String = "abc"

For  Each r As Row In CurrentTable.Rows
    For Each c As Col In CurrentTable.Cols
        
        If r(c.Name) = s1 Then
            r(c.Name) = s2
            Return
        End If
    Next
Next

在全表中定位s1

--  作者:有点蓝
--  发布时间:2017/7/18 23:16:00
--  
去掉: r(c.Name) = s2
--  作者:积水成渊
--  发布时间:2017/7/18 23:28:00
--  
去掉了就没有定位的效果了,鼠标点在哪就是哪,不会去查找s1在表中的位置
--  作者:积水成渊
--  发布时间:2017/7/18 23:29:00
--  
是不是应该加个opsition 或者select之类的代码
--  作者:积水成渊
--  发布时间:2017/7/19 8:30:00
--  
顶一下,问题还没有解决
--  作者:有点蓝
--  发布时间:2017/7/19 9:12:00
--  
If r(c.Name) = s1 Then
    CurrentTable.Position = r.Index
    Return
End If

--  作者:有点蓝
--  发布时间:2017/7/19 9:13:00
--  
For  Each r As Row In CurrentTable.Rows
    For Each c As Col In CurrentTable.Cols
        If r(c.Name) = s1 Then
            CurrentTable.Select(r.Index,c.Index)
            Return
        End If
    Next
Next

--  作者:积水成渊
--  发布时间:2017/7/19 9:53:00
--  
蓝老师你写的代码只能定位到第一个符合条件的单元格就不动了,我要的效果是,逐个定位单元格,点一下按钮,定位一个符合条件的的单元格,再点一下按钮,定位下一个符合条件的单元格
--  作者:有点蓝
--  发布时间:2017/7/19 10:07:00
--  
定义两个全局变量,整型,初始值0

Dim s1 As String = "111"
For i As Integer = vars("row") To CurrentTable.Rows.Count - 1
    For j As Integer = vars("col")+1 To CurrentTable.Cols.Count - 1
        If CurrentTable.Rows(i)(CurrentTable.Cols(j).Name) = s1 Then
            vars("row") = i
            vars("col") = j
            CurrentTable.Select(i,j)
            Return ""
        End If
    Next
    vars("col") = 0
Next
vars("col") = 0
vars("row") = 0


--  作者:积水成渊
--  发布时间:2017/7/19 10:37:00
--  
感谢 ,这个查询折腾挺久的,学的东西太少了,赶紧补课