To read the article online, visit

Displaying Listboxes and Hyperlinks with GetString

By Robert Monteiro

Recently I was searching 4Guys for information on GetString, an ADO method that converts a Recordset's contents into a compact string with user-defined delimiters. The purpose of using GetString is to greatly speed up the construction of blocks of data-embedded HTML, such a HTML TABLES. In my search for information on GetString, I came across a previous article entitled: Speeding Up ASP by Using GetString.

Throughout the article I noticed a mention about populating listboxes using GetString... however, I could not find any bit of code relating to this, so I decided to write my own! In this article I'd like to show you how to populate a listbox using GetString, and also how to create a list of hyperlinks from a database. If you are not familiar with GetString, I highly recommend that you read Speeding Up ASP by Using GetString first, since I will not delve into details on how GetString works.

Populating Listboxes with GetString
Before we examine the code, let's look at the functional syntax for GetString (all parameters are optional):

String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)

Note that for our examples we'll be using the ColumnDelimiter, RowDelimiter, and NullExpr parameters, which specify, respectively, what string to delimit each Recrodset column with, what string to delimit each Recordset row with, and what string to use if a Recordset cell contains a NULL value. Also, you can try out each of these scripts I've included in my article! Just click on the View Live Demo link at the conclusion of the code!

  Option Explicit

  'Create the SQL query
  Dim mySQL
  mySQL="select Name from tblFAQCategory order by Name"

  'Create the Connection and execute the query.
  Dim objConn
  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open "DSN=MyDSN"

  Dim objRS
  Set objRS = objConn.Execute(mySQL)

  'Incase no records exist, have a handler to present a sweet message
  'and call the subroutine CloseConn which closes the connection.
  If objRS.eof then
    Response.Write "Sorry, No records were found.<br>"
    Call CloseConn
  End If

  'This part of the code creates the selectbox, with a
  'selected option for all companies.
  Response.Write "<select size=""5"" name=""company"">" & _
                 "<option selected value=""All"">All Companies</option>"

  Response.Write "<option>"

  Response.Write objRS.GetString(,,,"</option><option>", "--NULL--")

  Call CloseConn  'Clean up!

  ' Sub to handle closing and cleaning up connections
  Sub CloseConn
    set objRS = Nothing

    Set objConn = Nothing
  End Sub
[View Live Demo]

While the above script may seem nice, many developers would like enhance the code so that instead of producing HTML output like:

<SELECT SIZE="5" NAME="company">

it would populate each row's unique ID in the VALUE parameter of the OPTION tag like so:

<SELECT SIZE="5" NAME="company">
  <OPTION VALUE="3">Application</OPTION>
  <OPTION VALUE="4">Strings</OPTION>
  <OPTION VALUE="1">Session</OPTION>

To accomplish this we only need to make a few minor changes. First, in our SQL statement, we'll need to grab the unique ID in the SELECT statement:

Dim mySQL
mySQL="select FAQCategoryID, Name from tblFAQCategory order by Name"

and then we'll need to alter the GetString statement some:

Response.Write "<select size='5' name='Company'>" & _
   "<option selected value='All'>All companies</option>"

Response.Write("<option value='")
Response.Write objRS.getstring(,,"'>", _
             "</option><option value='", "-null-")
[View Live Demo]

That's it! In Part 2 we'll examine how to construct a list of database-created hyperlinks using GetString. I'll be presenting a bit of I think most developers will want to use quite often!

  • Read Part 2!

  • Article Information
    Article Title: Displaying Listboxes and Hyperlinks with GetString
    Article Author: Robert Monteiro
    Published Date: Thursday, October 26, 2000
    Article URL:

    Copyright 2019 QuinStreet Inc. All Rights Reserved.
    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | E-mail Offers