以文本方式查看主题 - 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=178269) |
-- 作者:采菊东篱下 -- 发布时间:2022/6/27 14:02:00 -- 查找定位 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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/6/27 14:07:00 -- OrElse是代码的用法:http://www.foxtable.com/webhelp/topics/0220.htm Foxtable里有2套运算符语法,一套是用来写代码的,一套是用在条件表达式的,不要搞混了
|
-- 作者:采菊东篱下 -- 发布时间:2022/6/27 14:37:00 -- 这样写一样报错: 输入日期、月租金额便可查找定位;或输入日期、亲情计费_起计时间、亲情计费_24小时最高收费、亲情计费_小时收费便可查找定位;再或输入日期、临时收费_起计时间、临时收费_24小时最高收费、临时收费_小时收费便可查找定位,不用在所有控件输入数据,我这里应该是没在下面的控件输入数据引起错误,应如何避免? 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
|
-- 作者:有点蓝 -- 发布时间:2022/6/27 14:47:00 -- 学会看错误提示 1、日期没有值 2、or和前面的0粘到一起了
|
-- 作者:采菊东篱下 -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间:2022/6/27 20:34:00 -- 不该有的空格就不要乱加 |
-- 作者:采菊东篱下 -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2022/6/27 21:00:00 -- 调试是那一句代码错误 |
-- 作者:采菊东篱下 -- 发布时间: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 注识后面两段代码,在时间控件上选择时间,在月租收费上输入数据不报错,但选择时间,删除月租收费数据,在下面任意控件上选择数据就报错,同理,注识第一段代码,在代码对应的控件上输入数据不报错,没数据就报错,这三段代码只要其中一段代码对应控件没数据就报错,不能用同一按钮控制三段代码?有解决办法吗? |
-- 作者:有点蓝 -- 发布时间:2022/6/27 22:01:00 -- 参考这种方法设置查询条件:http://www.foxtable.com/webhelp/topics/1058.htm |