以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]字段转换类型后,再参与条件表达式问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172107) |
-- 作者:wangjh8888 -- 发布时间:2021/9/24 0:15:00 -- [求助]字段转换类型后,再参与条件表达式问题 老师好 Dim val1 As Double =3.1 With CurrentTable Dim r As Integer r = .FindRow("[cont] >= " & val1) \'从第一行开始查找 If r >= 0 Then \'如果找到的话 .Position = r \'定位到找到的行. End If End With 上面代码 在[cont] 是数据Double类型时,没有问题, 偏偏我的[cont]是字符型,如“12.34” 试了 r = .FindRow("CDbl([cont]) >= " & val1) 报错 怎么样写代码呀,完成查找 |
-- 作者:chnfo -- 发布时间:2021/9/24 6:44:00 -- r = .FindRow("[cont] >= \'" & val1 & "\')" \'从第一行开始查找 |
-- 作者:有点蓝 -- 发布时间:2021/9/24 8:49:00 -- 参考:http://www.foxtable.com/webhelp/topics/0098.htm r = .FindRow("Convert([cont], \'System.Double\') >= " & val1) |
-- 作者:wangjh8888 -- 发布时间:2021/9/24 8:56:00 -- 你好 val1 是数值,不能用单引号来引用吧 我本意是有两数字字符串,需要比较大小 如 dim a as string ="3.18" dim b as string ="22.18" b:从数据表【Cont1】而来 用字符来比较,a>b 我想要的结果是 CDbl(b)> CDbl(a)来定位position,所以需要把字符字段转换为数值字段转,再来比较 被困住了,求办法 |
-- 作者:有点蓝 -- 发布时间:2021/9/24 9:07:00 -- 看3楼 |
-- 作者:wangjh8888 -- 发布时间:2021/9/24 9:50:00 -- 老师 出现错误 .NET Framework 版本:2.0.50727.5420 Foxtable 版本:2018.10.9.1 错误所在事件:DropBox1,DropDownOpened 详细错误信息: 输入字符串的格式不正确。 怎么回事? |
-- 作者:有点蓝 -- 发布时间:2021/9/24 9:52:00 -- 代码?!! |
-- 作者:wangjh8888 -- 发布时间:2021/9/24 10:17:00 -- Dim txt1 As String = Forms("GPS接收").controls("ComboBox-数据来源").Text Dim txt2 As String = Forms("GPS接收").controls("ComboBox-来源名称").Text Dim txt3 As String = e.Form.DropDownBox.Text Dim t As Table = Forms("当前节点下拉窗口").controls("Table1").Table \'\'Tables("窗口1_Table1") \'\'e.Form.controls("Table1") t.RowHeaderVisible = False t.Filter = "[Class] = \'定位数据\' and [Scene] =\'" & txt1 & "\' And [Cont1] = \'" & txt2 & "\'" Dim i As Integer=0 i = t.FindRow("Convert([Cont3],\'System.Double\') >= " & CDbl(txt3) ) If i >= 0 Then t.Position = i End If t.Select()
|
-- 作者:有点蓝 -- 发布时间:2021/9/24 10:27:00 -- [Cont3]这个列数据有无法转换为数值的数据,比如字母,中文等 |
-- 作者:wangjh8888 -- 发布时间:2021/9/24 10:45:00 -- 只用 2条记录(“10“和”20”) 测试了,还是一样报错,??? |