1、集合用count,不是length。有问题的时候学会翻翻帮助:
http://www.foxtable.com/webhelp/topics/0217.htm
2、既然要取筛选的结果,应该从table里取数,而不是datatable
……
'开始生成筛选条件
Dim tj As String
For Each filter2 As String In Xkmys
tj = tj & "'" & filter2 & "',"
Next
tj = "[次选科目] In (" & tj.trim(",") & ")"
DataTables("基础数据").ReplaceFor("确定导入", False)
If Filter > "" Then
Filter = Filter & " and 确定导入=false"
End If
If tj > "" Then
Filter = Filter & " and " & tj
End If
Tables("基础数据").Filter = Filter
Dim cnt As Integer = Tables("基础数据").Rows.Count
Dim nds As Integer = e.Form.Controls("CSL").text '要抽取的记录数
Tables("基础数据").StopRedraw()
Do
Dim idx As Integer = rand.Next(0, cnt)
Dim dr As Row = Tables("基础数据").Rows(idx)
dr("确定导入") = True
nds = nds - 1
Loop While nds > 0
Tables("基础数据").Filter = "[确定导入] = True"
Tables("基础数据").ResumeRedraw()
Tables("基础数据").Sort = "预估分 DESC" '按"低分等效"列降序排列
e.Form.Controls("Label6").Text = "专业筛选完毕!."
……