Foxtable(狐表)用户栏目专家坐堂 → 查找定位


  共有4017人关注过本帖树形打印复制链接

主题:查找定位

美女呀,离线,留言给我吧!
采菊东篱下
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
查找定位  发帖心情 Post By:2022/6/27 14:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20220627135842.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20220627135654.png
图片点击可在新窗口打开查看
我想点查找按钮后自动定位到收费标准表上的行,在查找按钮上这样写报错:
With Tables("收费标准")
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value))
    If dr IsNot Nothing Then
        Dim idx As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value), .Position, True )
        If idx >= 0 Then
            .Position = idx
        End If
    End If
    Dim dr1 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [亲情计费_起计时间] = #" & e.Form.Controls("TextBox2").Value & "# OrElse [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & "OrElse [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value))
    If dr1 IsNot Nothing Then
        Dim idx1 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [亲情计费_起计时间] = #" & CDbl(e.Form.Controls("TextBox2").Value) & "# OrElse [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & "OrElse [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value), .Position, True )
        If idx1 >= 0 Then
            Tables("收费标准").Position = idx1
        End If
    End If
    Dim dr2 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & "OrElse [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & "OrElse [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value))
    If dr2 IsNot Nothing Then
        Dim idx2 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# OrElse [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & "OrElse [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & "OrElse [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value), .Position, True )
        If idx2 >= 0 Then
            Tables("收费标准").Position = idx2
        End If
    End If
End With

.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2022.5.29.2
错误所在事件:窗口,收费定价,Button2,Click
详细错误信息:
Syntax error: Missing operand after 'OrElse' operator.
[此贴子已经被作者于2022/6/27 14:02:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107850 积分:548607 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/27 14:07:00 [只看该作者]

OrElse是代码的用法:http://www.foxtable.com/webhelp/topics/0220.htm


Foxtable里有2套运算符语法,一套是用来写代码的,一套是用在条件表达式的,不要搞混了

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/6/27 14:37:00 [只看该作者]

这样写一样报错:
输入日期、月租金额便可查找定位;或输入日期、亲情计费_起计时间、亲情计费_24小时最高收费、亲情计费_小时收费便可查找定位;再或输入日期、临时收费_起计时间、临时收费_24小时最高收费、临时收费_小时收费便可查找定位,不用在所有控件输入数据,我这里应该是没在下面的控件输入数据引起错误,应如何避免?

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20220627142919.png
图片点击可在新窗口打开查看

With Tables("收费标准")
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value))
    If dr IsNot Nothing Then
        Dim idx As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value), .Position, True )
        If idx >= 0 Then
            .Position = idx
        End If
    End If
    Dim dr1 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or[亲情计费_起计时间] = #" & e.Form.Controls("TextBox2").Value & "# Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & "Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value))
    If dr1 IsNot Nothing Then
        Dim idx1 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [亲情计费_起计时间] = #" & CDbl(e.Form.Controls("TextBox2").Value) & "# Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & "Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value), .Position, True )
        If idx1 >= 0 Then
            Tables("收费标准").Position = idx1
        End If
    End If
    Dim dr2 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & "Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value))
    If dr2 IsNot Nothing Then
        Dim idx2 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & "Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value), .Position, True )
        If idx2 >= 0 Then
            Tables("收费标准").Position = idx2
        End If
    End If
End With

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107850 积分:548607 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/27 14:47:00 [只看该作者]

学会看错误提示

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

1、日期没有值
2、or和前面的0粘到一起了

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/6/27 20:11:00 [只看该作者]

.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2022.5.29.2
错误所在事件:窗口,收费定价,Button2,Click
详细错误信息:
Syntax error: Missing operand before 'Or' operator.

改为下面代码还是报错
With Tables("收费标准")
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = # " & e.Form.Controls("DateTimePicker1").Value & " # Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value))
    If dr IsNot Nothing Then
        Dim idx As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value), .Position, True )
        If idx >= 0 Then
            .Position = idx
        End If
    End If
    Dim dr1 As DataRow = DataTables("收费标准").Find("[实施日期] = # " & e.Form.Controls("DateTimePicker1").Value & " # Or [亲情计费_起计时间] = " & e.Form.Controls("TextBox2").Value & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value))
    If dr1 IsNot Nothing Then
        Dim idx1 As Integer = .FindRow("[实施日期] = # " & e.Form.Controls("DateTimePicker1").Value & " # Or [亲情计费_起计时间] = " & CDbl(e.Form.Controls("TextBox2").Value) & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value), .Position, True )
        If idx1 >= 0 Then
            Tables("收费标准").Position = idx1
        End If
    End If
    Dim dr2 As DataRow = DataTables("收费标准").Find("[实施日期] = # " & e.Form.Controls("DateTimePicker1").Value & " # Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value))
    If dr2 IsNot Nothing Then
        Dim idx2 As Integer = .FindRow("[实施日期] = # " & e.Form.Controls("DateTimePicker1").Value & " # Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value), .Position, True )
        If idx2 >= 0 Then
            Tables("收费标准").Position = idx2
        End If
    End If
End With

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107850 积分:548607 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/27 20:34:00 [只看该作者]

不该有的空格就不要乱加

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/6/27 20:57:00 [只看该作者]

.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2022.5.29.2
错误所在事件:窗口,收费定价,Button2,Click
详细错误信息:
Syntax error: Missing operand before 'Or' operator.

改为这样了,依然这样报错:
With Tables("收费标准")
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value))
    If dr IsNot Nothing Then
        Dim idx As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value), .Position, True )
        If idx >= 0 Then
            .Position = idx
        End If
    End If
    Dim dr1 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [亲情计费_起计时间] = " & e.Form.Controls("TextBox2").Value & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value))
    If dr1 IsNot Nothing Then
        Dim idx1 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [亲情计费_起计时间] = " & CDbl(e.Form.Controls("TextBox2").Value) & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value), .Position, True )
        If idx1 >= 0 Then
            Tables("收费标准").Position = idx1
        End If
    End If
    Dim dr2 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value))
    If dr2 IsNot Nothing Then
        Dim idx2 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value), .Position, True )
        If idx2 >= 0 Then
            Tables("收费标准").Position = idx2
        End If
    End If
End With




 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107850 积分:548607 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/27 21:00:00 [只看该作者]

调试是那一句代码错误

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2022/6/27 21:43:00 [只看该作者]

With Tables("收费标准")
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value))
    If dr IsNot Nothing Then
        Dim idx As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [月租收费] = " & CDbl(e.Form.Controls("TextBox1").Value), .Position, True )
        If idx >= 0 Then
            .Position = idx
        End If
    End If
'    Dim dr1 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [亲情计费_起计时间] = " & e.Form.Controls("TextBox2").Value & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value))
'    If dr1 IsNot Nothing Then
'        Dim idx1 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [亲情计费_起计时间] = " & CDbl(e.Form.Controls("TextBox2").Value) & " Or [亲情计费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox3").Value) & " Or [亲情计费_小时收费] = " & CDbl(e.Form.Controls("TextBox4").Value), .Position, True )
'        If idx1 >= 0 Then
'            Tables("收费标准").Position = idx1
'        End If
'    End If
'    Dim dr2 As DataRow = DataTables("收费标准").Find("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value))
'    If dr2 IsNot Nothing Then
'        Dim idx2 As Integer = .FindRow("[实施日期] = #" & e.Form.Controls("DateTimePicker1").Value & "# Or [临时收费_起计时间] = " & CDbl(e.Form.Controls("TextBox5").Value) & " Or [临时收费_24小时最高收费] = " & CDbl(e.Form.Controls("TextBox6").Value) & " Or [临时收费_小时收费] = " & CDbl(e.Form.Controls("TextBox7").Value), .Position, True )
'        If idx2 >= 0 Then
'            Tables("收费标准").Position = idx2
'        End If
'    End If
End With
注识后面两段代码,在时间控件上选择时间,在月租收费上输入数据不报错,但选择时间,删除月租收费数据,在下面任意控件上选择数据就报错,同理,注识第一段代码,在代码对应的控件上输入数据不报错,没数据就报错,这三段代码只要其中一段代码对应控件没数据就报错,不能用同一按钮控制三段代码?有解决办法吗?

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107850 积分:548607 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/27 22:01:00 [只看该作者]

参考这种方法设置查询条件:http://www.foxtable.com/webhelp/topics/1058.htm

 回到顶部
总数 11 1 2 下一页