以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用行号遍历数据表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=47653)

--  作者:发财
--  发布时间:2014/3/14 11:01:00
--  用行号遍历数据表

如何利用数据表的行号遍历数组集合

For...Next语句经常用于遍历数组集合,例如下面的代码,定义一个数组,然后给每个数组元素设置值:

For Index As Integer = 0 To MAX("行号").Length - 1
    Values(Index) = Index * 2

Next

如果数据表有20行,就利用数据表的行号进行遍历数据表


--  作者:狐狸爸爸
--  发布时间:2014/3/14 11:06:00
--  

http://www.foxtable.com/help/topics/1438.htm

http://www.foxtable.com/help/topics/0419.htm


 
For Index As Integer = 0 To Tables("xxx").Rows.Count - 1
    Tables("xxx").Rows(Index) = Index * 2
Next


--  作者:发财
--  发布时间:2014/3/14 14:42:00
--  

    For Each r As Row In Tables("收购").Rows
        If r.Isnull("猪主姓名") Then
            MessageBox.Show("请录入!")
            e.Form.Controls("猪主姓名").Select()

    Next
输入上述代码不行呀?


--  作者:Bin
--  发布时间:2014/3/14 14:50:00
--  
你想实现什么效果?   你的代码你1楼的描述,怎么对不上号? 看的有点迷茫.
--  作者:发财
--  发布时间:2014/3/14 15:18:00
--  
    Dim kjmc() As String \'控件名称
    Dim kjmcjh As String = "猪主姓名,重量,单价" \'控件名称集合
    kjmc = kjmcjh.Split(",")
    For Each r As Row In Tables("收购").Rows
        For i As Integer=0 To kjmc.Length-1
            If e.Form.Controls(kjmc(i)).value Is Nothing Then
                MessageBox.Show(kjmc(i) & "不能为空,请检查")
                r("修改") = False
                e.Form.Controls(kjmc(i)).Select
                Return
            End If
        Next
    Next
    dr = DataTables("收购").AddNew()
    dr("日期") = vars("adate")
    With Tables("收购")
        .Position = .Rows.Count - 1
    End With
    e.Form.Controls("猪主姓名").Select()

--  作者:Bin
--  发布时间:2014/3/14 15:19:00
--  
能不能说一下你出现的问题呢? 最好能上个例子.



--  作者:发财
--  发布时间:2014/3/14 15:19:00
--  
上述代码,当有两空行时,它不会检查到,仍增加一行,只有在当行时,才检查到"猪主姓名,重量,单价" 的空值。
--  作者:Bin
--  发布时间:2014/3/14 15:22:00
--  
因为你找到一行就Return了.所以不会继续执行
--  作者:发财
--  发布时间:2014/3/14 15:24:00
--  
我就是要找一行,输入一行,但它只会找最后一行。
--  作者:Bin
--  发布时间:2014/3/14 15:27:00
--  
呵呵,不行的. 只能一个个来.