Jenny: An alle VB/ASP Spezialisten helft mir

Hallo,

ich betreibe mit ASP/VBscript eine Webdatenbank. Nun habe ich ein Formular, dass dann je nach eingabe bestimmte Daten aus der db suchen soll. Nun habe ich das so gelöst, dass jedes Eingabefeld mit If  geprüft wird ob eine Eingabe stattgefunden hat, und dann mit THEN eine sql-Befehl ausgefüht wird. Das funktioniert auch prima. Nur sind das mehr als 20 verschidene If-Abfragen und dadurch sehr unübersichtlich. Geht das auch mit Select case? Ich habe es schon probiert aber es funktioniert nicht. Ich poste auch unten etwas non meinem Code. Danke für eure Hilfe.

If (Request("Feld1")<>"") Then
sql="Select ..."
end If

If (Request("Feld2")<>"") Then
sql="Select ..."
end If

So und so ungefähr soll es aussehen, aber es funktioniert nicht (Denkfehler?`)

Select Case sql

Case(Request("Feld1")<>"")
sql="Select ..."

Case(Request("Feld2")<>"")
.
.
.
End Select

  1. Moin!

    So und so ungefähr soll es aussehen, aber es funktioniert nicht (Denkfehler?`)

    Ja. Mit Case kannst du den Wert _EINER_ Variablen abfragen und für unterschiedliche Werte derselben dann in verschiedene Abschnitte springen. Du hingegen hast hier _mehrere_ Variablen, nämlich Request("Feld1") und Request("Feld2").

    Wenn du komplizierte Dinge tun willst, wird der Code zwangsweise eben auch kompliziert.

    - Sven Rautenberg

    1. Ok. Ist Schade, aber so ist VB halt :) Trotzdem vielen Dank für eure Hilfe. Jetzt bin ich um einiges schlauer und muss bzw. kann mich mit diesem Problem nicht länger herum ärgern. Gruß Jenny

  2. Hallo Jenny.
    Wie wärs mit ner Schleife im Stil von
    for i=1 to [Anzahl Felder]
      If (Request("Feld" & i)<>"") Then
        sql="Select ..."
      end If
    next

    Probier das mal aus.
    Select Case tuts in diesem Fall nicht, damit kannst du nämlich nur Rückgabewerte überprüfen, aber keine Vergleiche. Also zum Beispiel
    Select Case Request("Feld1")
    Case 1
    sql="Select ..."
    Case 2
    .
    .
    .
    End Select