以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  集合值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149452)

--  作者:刘林
--  发布时间:2020/5/2 17:04:00
--  集合值
Dim dws As List(Of String)
dws = DataTables("学校信息").sqlGetValues("单位全称","所属中心校=\'" & _usergroup &"\'")


tb3.Fill("Sect 学校名称,班级,学生姓名,身份证件号,学籍号,户籍地址,家庭住址,监护人姓名,联系电话,民族,出生日期,性别,健康状况,残疾就读情况,留守情况,是否建档立卡 From {学生信息} where 健康状况<>\'健康或良好\' and 学校名称 in (\'" & dws.replace(",","\',\'") & "\'),"user",True)


老师,我想取得集合后在填充时选集合内的值,学校名称 in ....这里怎样写,谢谢

--  作者:狐狸爸爸
--  发布时间:2020/5/3 8:42:00
--  
打开Foxtable自带的基本功能演示文件,然后在命令窗口执行:

Dim vals As New List(of String) 
vals.Add("PD01")
vals.Add("PD02")
vals.Add("PD03")
Dim flt As String  = "产品 in ("
For i As Integer = 0 To vals.Count - 1
    If i > 0 Then
        flt = flt & ","
    End If
    flt = flt &  "\'" & vals(i) & "\'"
Next
flt = flt  & ")"
MessageBox.show(flt)
DataTables("订单").Fill("Se lect * Fro m {订单} Where " & flt,False)


其实帮助不少类似的例子:

实际上不需要任何例子也能写出来,你只需要要明白in的语法是:
SELE CT * F ROM {订单} WHERE 产品 IN (\'PD01\',\'PD02\')
你就可以照着合成了,所有的表达式合成都是一回事。