Kategorie: Datenbankzugriffe
Frage: Wie erstelle ich eine Listbox (<select name="...">) aus Werten einer Datenbanktabelle?
Sie können ganz einfach Listboxen (z.B. als Wertelisten) erstellen. Dafür müssen Sie eigentlich
lediglich etwas in der HTML-Ausgabe ändern. Der ASP-Code bleibt genauso wie bei einer "normalen"
Auflistung von Datensätzen erhalten.

[createlist.asp]
<%    
' --- Erstellen der Datenbankverbindung
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"

' --- SQL-Statement erstellen (DISTINCT gruppiert die Werte, so dass
' --- doppelte Zeilen nicht ausgegeben werden).
    SQL = "SELECT DISTINCT <spalte1>, <spalte2> FROM <tabelle>"

' --- Öffnen des Recordsets
Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, objConn, 3, 3


' --- Prüfen, ob mind. 1 Datensatz gefunden wurde
    If Not objRS.EOF Then

        ' --- Ausgabe der Überschrift
        Response.Write "<select name=""selTest"" size=""1"">"
        
        ' --- Ausgabe der einzelnen Werte in einer Schleife. Auf einer evtl.
        ' --- Empfangsseite wird der Wert von objRS.Fields("<spalte1>")
        ' --- übermittelt, da dieser Wert im value-Tag des Listenfelds definiert ist
        Do While Not objRS.EOF
            Response.Write "<option value=""" & objRS.Fields("<spalte1>") & """>" & objRS.Fields("<spalte2>")
            objRS.MoveNext
        Loop
        
        ' --- Abschliessen der Listbox
        Response.Write "</select>"
    End if
    
' --- Schliessen und terminieren des Recordsets
    objRS.Close
Set objRS = Nothing

' --- Schliessen und terminieren der Datenbankverbindung
    objConn.Close
Set objConn = Nothing
%>
Copyright 2000 - 2024 by Stefan Falz Webconsulting