以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于清除窗口中ComboBox值的代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=61143)

--  作者:huangfanzi
--  发布时间:2014/12/7 22:34:00
--  [求助]关于清除窗口中ComboBox值的代码
清除文本类型的ComboBox值时,用e.Form.Controls("ComboBox_牌号").Value = Nothing
但清除双精度与逻辑刑的ComboBox值时,用了上述代码后返回:无法在 System.Double 和 System.String 上执行“=”操作
请问老师我应该如何写代码才能正确的清除双精度与逻辑型的ComboBox值

--  作者:有点甜
--  发布时间:2014/12/7 22:49:00
--  
e.Form.Controls("ComboBox_牌号").Text = Nothing
[此贴子已经被作者于2014-12-7 22:49:04编辑过]

--  作者:huangfanzi
--  发布时间:2014/12/7 22:59:00
--  
还是出错,我有个清除筛选的按钮,在这里写了如下代码:
e.Form.Controls("ComboBox_公司").Value = Nothing
e.Form.Controls("ComboBox_牌号").Value = Nothing
e.Form.Controls("ComboBox_厚度").Text = Nothing
e.Form.Controls("ComboBox_审核").Text = Nothing
Tables("原料采购合同查询主窗口_Table_原料采购_副本").Filter=""

厚度在表上是双精度类型,审核是逻辑型,我在厚度中选了值后进行筛选,这一步还是正常的,但点了清除筛选按钮后,就弹出:无法在 System.Double 和 System.String 上执行“=”操作。

--  作者:有点甜
--  发布时间:2014/12/7 23:24:00
--  
 做个例子上来,应该是没问题的,可能触发了控件的 TextChanged 或 ValueChanged 事件了。
--  作者:huangfanzi
--  发布时间:2014/12/8 12:25:00
--  
是的啊,是与 TextChanged 或 ValueChanged 事件有关。
我在一个窗口中有四个ComboBox控件,分别是公司(文本)、牌号(文本)、厚度(双精度)及审核(逻辑),操作流程如下:
通过选择公司的下拉项目,选择一个公司后表进行了按公司筛选,执行正确;
这时再对厚度进行筛选,也是执行正确;
再对公司进行筛选,就会弹出“无法在 System.Double 和 System.String 上执行“=”操作。”
原因应该出在以下代码中:
公司ComboBox的ValueChanged中有以下代码:
e.Form.Controls("ComboBox_牌号").Value = Nothing
e.Form.Controls("ComboBox_厚度").Text = Nothing
e.Form.Controls("ComboBox_审核").Text = Nothing
Tables("原料采购合同查询主窗口_Table_原料采购_副本").Filter="[公司] = \'" & e.Form.Controls("ComboBox_公司").value & "\'"

厚度ComboBox的ValueChanged中有以下代码:
e.Form.Controls("ComboBox_公司").Value = Nothing
e.Form.Controls("ComboBox_牌号").Value = Nothing
e.Form.Controls("ComboBox_审核").Text = Nothing
Tables("原料采购合同查询主窗口_Table_原料采购_副本").Filter="[厚度] = \'" & e.Form.Controls("ComboBox_厚度").value & "\'"

我在上面的代码中用= Nothing的目的是清除之前筛选时选择的文字,例如选择一个公司筛选后,这个公司名就一直在ComboBox文字框中了,再用其他ComboBox筛选时,之前的这个公司ComboBox中文字一直会在,我就是想用上面的代码清除掉其他ComboBox框中的文字。

问题应该就出在上面的代码中,请老师们指正,谢谢!
[此贴子已经被作者于2014-12-8 12:26:34编辑过]

--  作者:huangfanzi
--  发布时间:2014/12/8 12:58:00
--  
刚又做了下测试,我把四个ComboBox中“= Nothing”这些代码全部去掉,在清除筛选的按钮中写下如下代码:
e.Form.Controls("ComboBox_公司").Value = Nothing
e.Form.Controls("ComboBox_牌号").Value = Nothing
e.Form.Controls("ComboBox_厚度").Text = Nothing
e.Form.Controls("ComboBox_审核").Text = Nothing
Tables("原料采购合同查询主窗口_Table_原料采购_副本").Filter=""

我如果对厚度进行了筛选,再点清除筛选按钮把筛选全部关闭,之后再点厚度ComboBox就会弹出:无法在 System.Double 和 System.String 上执行“=”操作。同理,用上面流程点审核ComboBox,就会弹出:无法在 System.Boolean 和 System.String 上执行“=”操作。

--  作者:huangfanzi
--  发布时间:2014/12/8 13:28:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:combobox故障.rar

我做了个例子上传上来了,请老师看下。进行以下操作会出现问题:

1、筛选公司

2、筛选厚度

3、筛选公司

4、再进行筛选厚度时弹出出错信息:无法在 System.Double 和 System.String 上执行“=”操作。


--  作者:lsy
--  发布时间:2014/12/8 14:15:00
--  
1
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:combobox故障.foxdb


--  作者:huangfanzi
--  发布时间:2014/12/8 19:54:00
--  
附件我下载看了,是可以用了,但我的代码错在哪里呢?请指导一下,谢谢!
--  作者:有点甜
--  发布时间:2014/12/8 20:14:00
--  

 你可以输出两者的代码对比一下

 

http://www.foxtable.com/help/topics/1987.htm