我一個表中的兩個字段﹕  name(全名)               name_jianchen(名字簡稱)Axx  Axxx                                 AABxxx Bxx  Bx                            BBB 現我想在Text1.text中輸入名字簡稱﹐如輸入“AA”或“AA,BBB”或“AA,BBB,CC,DDD”等(含有逗號)﹐點擊按鈕後﹐在 Text2.text中就對應的顯示:“Axx  Axxx”或"Axx  Axxx ,Bxxx Bxx  Bx"或"Axx  Axxx,Bxxx Bxx  Bx,Cxxx Cxx,Dxx Dxx Dxx".我的思路﹕  n=0  for m=1 to Len(Text1.text)if mid(Text1.text,m,1)="," then  n=n+1   nextText2.text=mid(Text1.text,n,n+1)Text2.text=Text2.text & "," 但我分析了很久﹐總覺得有問題。請大家幫幫忙﹗謝謝﹗

解决方案 »

  1.   

    dim strTmp() as String,i%,strSql AS String
    strTmp=split(Text1.Text,",")For i=lBound(strTmp) To Ubound(strTmp)
        strSql=strSql & " Union select name from 表 where name_jianchen='" & strTmp(i) & "'"
    NextstrSql=Mid(Trim(strSql),Instr(Trim(strSql),Space(1))+1)  '去掉最前面一个 Unionrs.Open strSql,cn
    While Not rs.Eof
        Text2.Text=rs(0) & ","
        rs.MoveNext
    WendText2.Text=Left(Trim(Text2.Text),Len(Trim(Text2.Text))-1) ' 去掉最后一个 逗号
      

  2.   

    上面代码是用ADO来操作,具体代码请自己添加完整
      

  3.   

    問題已解決﹐但為什麼要加 Union 呢﹖
      

  4.   

    Union是用来连合个sql语句的比如:
    select * from A表 得到一个记录集
    select * from B表 得到另一个记录集select * from A表 Union select * from B表  将上面两个记录集合并为一个记录集
      

  5.   

    我知道union 的用途﹐但在我上面的程序中﹐可以不用的巴﹗
      

  6.   

    dim sa1() as string
    s1="A,AA"
    sa1 = split(s1,",") '数组分段
    '这时候,sa1(0)="A", sa1(1)="AA"'转换
    for i=0 to ubound(sa1)
      sa2(i) = translate( sa1(i) ) '将"A"->"Axxxx"
    next isRet = join(sa2, " ") ' 将数组连接起来