以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教这条Findrow怎么写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22155)

--  作者:Fotable
--  发布时间:2012/8/4 10:21:00
--  请教这条Findrow怎么写?

With CurrentTable
    Dim r As Integer
    r = .FindRow("[日期] = date.today and [用户] = user.name", 0,False ) \'从当前行开始查找
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行.
        MessageBox.Show("找到了","哈哈")
    Else
        MessageBox.Show("没找到了","哈哈")
    End If
End With

 

 

FindRow("[日期] = date.today and [用户] = user.name", 0,False )

这句有报错 该怎么表达这个条件呢


--  作者:Fotable
--  发布时间:2012/8/4 10:25:00
--  
还有一个问题,提示 不能在排序状态下插入行。怎么解决
--  作者:mr725
--  发布时间:2012/8/4 13:33:00
--  

[日期] = #" & date.today & "#    试试

 

插入行时是不能排序的。

[此贴子已经被作者于2012-8-4 13:33:53编辑过]

--  作者:Fotable
--  发布时间:2012/8/4 17:43:00
--  

楼上正解

findrow 如果找到多行符合条件,是返回第一个找到的行,还是最后一个找到的行呢?

根据我的例子好像是找到最后一行,如果想找到第一符合条件的行怎么办呢?


--  作者:Fotable
--  发布时间:2012/8/4 18:17:00
--  

 r = .FindRow("[日期] = #" & Date.today & "# And [用户] = \'" & User.Name & "\' and isnull([签到],0)" , 0,False )

我又增加了一个isnull条件  又报错了.

FindRow("[日期] = #" & Date.today & "# And [用户] = \'" & User.Name & "\' and " & isnull([签到],0) , 0,False )  这样写也不行呀

 

还是用 CurrentTable.Current.IsNull("签到") 这样的格式呢

[此贴子已经被作者于2012-8-4 18:26:42编辑过]

--  作者:mr725
--  发布时间:2012/8/4 21:13:00
--  
 表达式中这样: [签到] is null 
--  作者:mr725
--  发布时间:2012/8/4 21:15:00
--  
以下是引用Fotable在2012-8-4 17:43:00的发言:

楼上正解

findrow 如果找到多行符合条件,是返回第一个找到的行,还是最后一个找到的行呢?

根据我的例子好像是找到最后一行,如果想找到第一符合条件的行怎么办呢?

用这个: FindRow(DataRow)


--  作者:Fotable
--  发布时间:2012/8/4 22:35:00
--  
有的时候,我们是没有办法用IsNull函数的,只能用Is Null语句,例如使用表达式筛选时,需要从订单表中筛选出折扣为空的行,那么筛选表达式为:

[折扣] Is Null

关于筛选,会有专门的章节讲述。

IsNull函数可以返回列的值,所以多用于计算,而Is Null语句返回一个逻辑值,所以多用于条件筛选,关于Is Null语句的实际应用,我们将在开发指南中接触到。

如果要判断内容是否不为空,可以加上Not关键词,例如:

[折扣] Is Not Null

  谢谢楼上