以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于定义引用变量的运行时间问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79565)

--  作者:文道古月
--  发布时间:2016/1/5 8:22:00
--  关于定义引用变量的运行时间问题

 

下面的代码,放在datarowadding事件,在没有打开窗口时,dim引用的变量放在if之外就会报错,反之不会,

 

定义变量不是只有在用的时候才会运行吗?此时if 应该是未执行状态的

 

If Forms("库存调整").Opened Then
    Dim cmb As WinForm.ComboBox = e.Form.Controls("移动类型ComboBox2")
    Dim ccb As WinForm.CheckedComboBox = e.Form.Controls("备注CheckedComboBox1")
    Dim cmb2 As WinForm.ComboBox = e.Form.Controls("接收单元ComboBox1")
    e.DataRow("调增单元") = cmb2.value.SubString(0,4)
    e.DataRow("移动代码") = cmb.Value.SubString(0,3)
    e.DataRow("移动文本") = cmb.Value.SubString(4)
    e.DataRow("备注") = ccb.Value
End If


--  作者:Hyphen
--  发布时间:2016/1/5 9:01:00
--  
不是定义变量出错,而是给变量赋值的问题
--  作者:大红袍
--  发布时间:2016/1/5 9:25:00
--  

If Forms("库存调整").Opened Then
    Dim cmb As WinForm.ComboBox = Forms("库存调整").Controls("移动类型ComboBox2")
    Dim ccb As WinForm.CheckedComboBox = Forms("库存调整").Controls("备注CheckedComboBox1")
    Dim cmb2 As WinForm.ComboBox = Forms("库存调整").Controls("接收单元ComboBox1")
    e.DataRow("调增单元") = cmb2.value.SubString(0,4)
    e.DataRow("移动代码") = cmb.Value.SubString(0,3)
    e.DataRow("移动文本") = cmb.Value.SubString(4)
    e.DataRow("备注") = ccb.Value
End If


--  作者:大红袍
--  发布时间:2016/1/5 9:26:00
--  
窗口不打开,肯定不能引用窗口控件的值。