我正在尝试循环使用以特定ID开头的一系列复选框。
这段代码似乎正常,但它找不到任何东西:
SELECT sum1, sum2
FROM t1
JOIN (SELECT c1,
SUM(CASE WHEN c3 = 'NEW' AND c5 = 'N' THEN c1
ELSE NULL END) AS sum1,
SUM(CASE WHEN c3 = 'OLD' THEN c2
ELSE NULL END) AS sum2
FROM t2
WHERE c4 = TRUNC(SYSDATE)) t2 ON t1.c1 = t2.c1
WHERE t1.c2 IN ('DUMMY', 'DUMMY2')
它在第二行说明了
Dim childc As Control
Dim c as Control
For Each c In Me.Page.Controls
For Each childc In c.Controls
If TypeOf childc Is CheckBox Then
If CType(childc, CheckBox).Checked Then
If childc.ID.StartsWith("ctl00_indexBody_ID_ACTIVITE_") Then
i = i + 1
Alerte(CType(childc, CheckBox).Text)
strSQL = "INSERT INTO A_ACTIVITES VALUES("
strSQL += Me.ID_PRESTATAIRE.Text + "," + childc.ID + ","
strSQL += ")"
oWebConnection.Execute(strSQL)
End If
End If
End If
Next
Next
感谢您的帮助
答案 0 :(得分:1)
将c
和childc
声明为Control
,而不是CheckBox
。
c
的声明不可见,但我认为你犯了同样的错误。
答案 1 :(得分:0)
我找到了解决方案
Protected Sub GererActivite(ByVal oControls As ControlCollection)
Dim oControl As Control
For Each oControl In oControls
If oControl.HasControls Then
GererActivite(oControl.Controls) ' récursivité
ElseIf TypeOf oControl Is CheckBox Then
If CType(oControl, CheckBox).Checked Then
If CType(oControl, CheckBox).Text.StartsWith("ctl00_indexBody_ID_ACTIVITE_") Then
End If
End If
End If
Next
End Sub
此函数通过控件Collection运行,如果此集合的控件具有控件,我将使用相同的函数运行这些控件,直到它找到一个没有控件的控件,如果它是一个复选框,我可以按我的意愿检查它。 它就像一个魅力。
事实上,这是我的老板的想法,我只是吹牛,哈哈。
希望它能帮助别人。