当建立网址时,通常需要生成一个基于从数据库中重新获得的数据的选项列表。这个选项列表通常用于编写表值。下面的功能生成了一个HTML串,其中包含有一个基于ADO记录集的选项列表,并且可以用于由ASP网页读取的VB
.dll中。它也同样适用于在ASP网页中直接运行。
功能参数包括一个可返回HTML串的ByRef参数、显示和值的列名、一个用作标记选项被选中的值以及一个可选参数来指定选项列表中的初始值。
Public Function GenerateDropdown( ByVal Data As Recordset, _
ByRef HTML As Variant, ByVal DisplayColumn As String, _
ByVal ValueColumn As String, ByVal SelectedOption As String, _
Optional ByVal FirstOption As Variant ) As Boolean
On Error GoTo ERR_HANDLER
Dim strHTML As String
If Not IsMissing(FirstOption) Then
strHTML = "<OPTION value=''"
If SelectedOption = FirstOption Then
strHTML = strHTML & " selected"
End If
strHTML = strHTML & ">" & FirstOption & "</OPTION>"
End If
With Data
If .RecordCount > 0 Then
.MoveFirst
End If
Do Until .EOF
strHTML = strHTML & "<OPTION value='" & _
.Fields.Item(ValueColumn).Value & "'"
If SelectedOption = .Fields.Item(ValueColumn).Value Then
strHTML = strHTML & " selected"
End If
strHTML = strHTML & ">"
strHTML = strHTML & .Fields.Item(DisplayColumn).Value
strHTML = strHTML & "</OPTION>"
Call .MoveNext
Loop
End With
HTML = strHTML
ERR_HANDLER:
If Err.Number <> 0 Then
Err.Raise Err.Number, Err.Source, Err.Description
GenerateDropdown = False
HTML = vbNullString
Else
GenerateDropdown = True
End If
End Function
当你需要从ADO数据集(ADORecordsets)中快速生成一个下拉列表时,这个功能是非常有用的。这个例子在这个功能中加入了它的逻辑,使之方便于日后的修改。