Foxtable(狐表)用户栏目专家坐堂 → [求助]自动匹配的窗口代码有误


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

主题:[求助]自动匹配的窗口代码有误

帅哥哟,离线,有人找我吗?
倪远歌1
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:577 威望:0 精华:0 注册:2018/4/4 8:37:00
[求助]自动匹配的窗口代码有误  发帖心情 Post By:2018/7/3 15:53:00 [只看该作者]

想搞一个输入尺寸可以自动匹配纸箱并计算容积率的窗口:
如图

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

数值输入框SPL的valuechanged事件代码如下:
Dim drs As List(Of DataRow)
Dim dr1 As DataRow 
Dim dr2 As DataRow
Dim spl As WinForm.NumericComboBox = e.Form.Controls("SPL")
Dim spw As WinForm.NumericComboBox = e.Form.Controls("SPW")
Dim sph As WinForm.NumericComboBox = e.Form.Controls("SPH")
Dim ZX1 As WinForm.ComboBox = e.Form.Controls("ZX1")
Dim ZX1L As WinForm.NumericComboBox = e.Form.Controls("ZX1L")
Dim ZX1W As WinForm.NumericComboBox = e.Form.Controls("ZX1W")
Dim ZX1H As WinForm.NumericComboBox = e.Form.Controls("ZX1H")
Dim ZX1V As WinForm.NumericComboBox = e.Form.Controls("ZX1V")
Dim ZX2 As WinForm.ComboBox = e.Form.Controls("ZX2")
Dim ZX2L As WinForm.NumericComboBox = e.Form.Controls("ZX2L")
Dim ZX2W As WinForm.NumericComboBox = e.Form.Controls("ZX2W")
Dim ZX2H As WinForm.NumericComboBox = e.Form.Controls("ZX2H")
Dim ZX2V As WinForm.NumericComboBox = e.Form.Controls("ZX2V")
drs= DataTables("包材数据库").Select("[包材大类]='纸箱' and [最大内尺寸_长] >= spl.Value And [最大内尺寸_宽] >= spw.value And  [最大内尺寸_高] >= sph.value", "容积" )
dr1=drs(0)
dr2=drs(1)

zx1.text = dr1("包材编码")
zx1l.value = dr1("最大内尺寸_长")
zx1w.value = dr1("最大内尺寸_宽")
zx1h.value = dr1("最大内尺寸_高")
zx1v.value = spl.value * spw.value * sph.value / dr1("最大内尺寸_长")/ dr1("最大内尺寸_宽")/dr1("最大内尺寸_高")

zx2=..........
......


报错如下:未找到列 [spl.Value]。。




[此贴子已经被作者于2018/7/3 17:11:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/3 20:12:00 [只看该作者]


drs= DataTables("包材数据库").Select("[包材大类]='纸箱' and [最大内尺寸_长] >= " & spl.Value & " And [最大内尺寸_宽] >= " & spw.value & " And  [最大内尺寸_高] >= " & sph.value, "容积" )
If drs.count > 1 Then
    dr1=drs(0)
    dr2=drs(1)
    
    zx1.text = dr1("包材编码")
    zx1l.value = dr1("最大内尺寸_长")
    zx1w.value = dr1("最大内尺寸_宽")
    zx1h.value = dr1("最大内尺寸_高")
    zx1v.value = spl.value * spw.value * sph.value / dr1("最大内尺寸_长")/ dr1("最大内尺寸_宽")/dr1("最大内尺寸_高")
End If

 回到顶部
帅哥哟,离线,有人找我吗?
倪远歌1
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:577 威望:0 精华:0 注册:2018/4/4 8:37:00
  发帖心情 Post By:2018/7/4 9:48:00 [只看该作者]

还是报错:
语法错误:“And”运算符前缺少操作数。

动态合成表达式例子太少了,看不太懂,
比如说表达式应该是字符串为什么不是以“结尾???
或者是这样
drs= DataTables("包材数据库").Select("[包材大类]='纸箱' and [最大内尺寸_长] >= "& spl.Value &" And [最大内尺寸_宽] >= "& spw.value &" And  [最大内尺寸_高] >= "& sph.value &"", "容积" )
???
[此贴子已经被作者于2018/7/4 9:54:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/4 10:44:00 [只看该作者]

改成

 

drs= DataTables("包材数据库").Select("[包材大类]='纸箱' and [最大内尺寸_长] >= " & val(spl.Value) & " And [最大内尺寸_宽] >= " & val(spw.value) & " And  [最大内尺寸_高] >= " & val(sph.value), "容积" )

 

如果还报错,弹出这个看看

 

msgbox("[包材大类]='纸箱' and [最大内尺寸_长] >= " & val(spl.Value) & " And [最大内尺寸_宽] >= " & val(spw.value) & " And  [最大内尺寸_高] >= " & val(sph.value))

 

如果还报错,做个例子发上来测试。


 回到顶部