嗨大伙可以帮我转换成case select语句,这是我第一次使用case select语句。
If TabControl1.SelectedTab Is tp_5 Then
myqry = "SELECT * FROM TBLVLAN5 ORDER BY ID"
ElseIf TabControl1.SelectedTab Is tp_7 Then
myqry = "SELECT * FROM TBLVLAN7 ORDER BY ID"
我在网上搜索但是我只找到了使用整数和字符串的case select语句,而不是那个适合我的if else示例的语句。
我也尝试使用它,但它不起作用,这是我的代码。
Dim h As String
h = TabControl1.SelectedTab Is tp_10
Select Case h
Case TabControl1.SelectedTab Is tp_5
myqry = "SELECT * FROM TBLVLAN5 ORDER BY ID"
Case TabControl1.SelectedTab Is tp_7
myqry = "SELECT * FROM TBLVLAN7 ORDER BY ID"
Case TabControl1.SelectedTab Is tp_8
myqry = "SELECT * FROM TBLVLAN8 ORDER BY ID"
End Select
非常感谢任何帮助。 感谢。
答案 0 :(得分:2)
您无法使用Select...Case
将参考与Is
进行比较,请使用If...Else
:
If TabControl1.SelectedTab Is tp_5 Then
myqry = "SELECT * FROM TBLVLAN5 ORDER BY ID"
ElseIf TabControl1.SelectedTab Is tp_7 Then
myqry = "SELECT * FROM TBLVLAN7 ORDER BY ID"
...
End If
另外,我热烈建议将Option Strict
设为ON
。
Dim h As String
之后没有编译,因为Is tp_10
会返回Boolean
。 Option Strict
可以阻止您进行不正确的魔术编译器转换。
答案 1 :(得分:2)
一种可能的解决方案如下:
Select Case True
Case TabControl1.SelectedTab Is tp_5
myqry = "SELECT * FROM TBLVLAN5 ORDER BY ID"
Case TabControl1.SelectedTab Is tp_7
myqry = "SELECT * FROM TBLVLAN7 ORDER BY ID"
End Select
由您来决定这是否比If..Then..Else
更具可读性:)
答案 2 :(得分:1)
您可以删除对If或Case语句的需要。
如果将选项卡的name属性设置为“tab_5”,则可以通过以下方式设置myqry字符串:
myqry = "SELECT * FROM TBLVLAN" + TabControl1.SelectedTab.Name.Split("_")[1] + " ORDER BY ID"
这将使用Tab名称的数字部分并将其放在sql查询字符串中。