是的啊,是与 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编辑过]