您的位置:首页 > 其它

根据条件选择,将值传递为一个组合框的下拉列表

2006-04-15 15:18 411 查看
'注释:

Sub eb_Sheng_CloseUp()

dim Arr,Dic

eb_shi.Clear

StrSql = "Select 城市 From 邮编区号 Where 省份 = '"+eb_Sheng.Text+"'"

StrRet = DBEngine.WebFunction("SqlQuery",StrSql,"")

GetArrFromXML Dic,Arr,strRet

FOR i=0 TO UBound(Arr,2)

eb_Shi.AddItem Arr(0,i)

NEXT

End Sub

Function GetArrFromXML(ByRef FieldArr, ByRef Arr1, Xml1)

Dim i, j, lsXml, lsChar, liStar, liEnd, lsStar, lsEnd, liLen,Dic1

lsStar = "<FieldName>"

lsEnd = "</FieldName>"

liLen = Len(lsStar)

i = InStr(1,Xml1, "<FieldInfoArray>",1)

If i <> 0 Then

lsXml = Mid(Xml1, i, Len(Xml1))

Else

Exit Function

End If

liStar = InStr(1, lsXml, lsStar, 1)

liEnd = InStr(1, lsXml, lsEnd, 1)

Do While liEnd > 0

If IsArray(FieldArr) Then

ReDim Preserve FieldArr(UBound(FieldArr) + 1)

Else

ReDim FieldArr(0)

End If

FieldArr(UBound(FieldArr)) = Mid(lsXml, liStar + liLen, liEnd - liStar - liLen)

liStar = InStr(liEnd+1, lsXml, lsStar, 1)

liEnd = InStr(liEnd+1, lsXml, lsEnd, 1)

Loop

Set Dic1 = CreateObject("Scripting.Dictionary")

For i = 0 To UBound(FieldArr, 1)

Dic1.Add FieldArr(i), CStr(i)

Next

liStar = InStr(1, lsXml, "<RowNum>", 1)

liEnd = InStr(1, lsXml, "</RowNum>", 1)

i = Int(Mid(lsXml, liStar + Len("<RowNum>"), liEnd - liStar - Len("<RowNum>")))

ReDim Arr1(UBound(FieldArr, 1), i - 1)

For i = 0 To UBound(FieldArr, 1)

lsStar = "<" & FieldArr(i) & ">"

lsEnd = "</" & FieldArr(i) & ">"

liLen = Len(lsStar)

j = 0

liStar = InStr(1, lsXml, lsStar, 1)

liEnd = InStr(1, lsXml, lsEnd, 1)

Do While liEnd > 0 'i = dic1.key(FieldArr(i))

Arr1(i, j) = Mid(lsXml, liStar + liLen, liEnd - liStar - liLen)

liStar = InStr(liEnd+1, lsXml, lsStar, 1)

liEnd = InStr(liEnd+1, lsXml, lsEnd, 1)

j = j + 1

Loop

Next

End Function
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐