以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教一个Select Case的问题?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=27137)

--  作者:samica
--  发布时间:2012/12/23 12:44:00
--  [求助]请教一个Select Case的问题?
要为一张表的有关列的值设置默认值,这些默认值过一段时间后,可能会有所变化,所以想通过代码进行修改:
If  e.Form.Controls("TextBox1").value Is Nothing Then
Else
DataTables("表1").DataCols("列1").DefaultValue = """"& e.Form.controls("textbox1").value &""""
End If
If  e.Form.Controls("TextBox2").value Is Nothing Then
Else
DataTables("表1").DataCols("列2").DefaultValue = """"& e.Form.controls("textbox2").value &""""
End If
If  e.Form.Controls("TextBox3").value Is Nothing Then
Else
DataTables("表1").DataCols("列3").DefaultValue = """"& e.Form.controls("textbox3").value &""""
End If
……
还有很多这样的列,用IF语句可以实现。我想用Select Case实现,请教狐表高手应该怎么写?谢谢!

--  作者:samica
--  发布时间:2012/12/23 13:14:00
--  
顶一下,有高手在线吗?林总、狐爸……在线吗?
--  作者:yinyb36
--  发布时间:2012/12/23 13:32:00
--  

你这个情况,变量都不同,就用IF语句吧,用Select反而臃肿


--  作者:samica
--  发布时间:2012/12/23 13:39:00
--  
以下是引用yinyb36在2012-12-23 13:32:00的发言:

你这个情况,变量都不同,就用IF语句吧,用Select反而臃肿


哦,好的,我以为用select case可以精简点的。谢谢!


--  作者:yinyb36
--  发布时间:2012/12/23 14:03:00
--  

在表事件中,如DataColchanged中:

If e.NewValue IsNot Nothing Then
    Dim nm As String = e.DataCol.Name
    Select nm
        Case "列1"
            代码1
        Case "列2"
            代码2
        Case "列3"
            代码3
            .
            .
            .
        Case Else
            代码X
    End Select
End If

这样也可


--  作者:samica
--  发布时间:2012/12/23 15:06:00
--  
我是用窗口进行改写的,上楼的代码可行吗?
--  作者:yinyb36
--  发布时间:2012/12/23 18:53:00
--  

前面加上:

If Forms("窗口1").opened Then

最后加上:

end if

可测试下


--  作者:lin_hailun
--  发布时间:2012/12/24 9:23:00
--  
不建议写成 selec case 的形式

If  e.Form.Controls("TextBox1").value Isnot Nothing Then
DataTables("表1").DataCols("列1").DefaultValue = """"& e.Form.controls("textbox1").value &""""
End If

If  e.Form.Controls("TextBox2").value IsNot Nothing Then
DataTables("表1").DataCols("列2").DefaultValue = """"& e.Form.controls("textbox2").value &""""
End If

If  e.Form.Controls("TextBox3").value IsNot Nothing Then
DataTables("表1").DataCols("列3").DefaultValue = """"& e.Form.controls("textbox3").value &""""
End If