PDA

Vollständige Version anzeigen : SQL-Abfrage bei Ergebnisseite


EraZor
17.07.2002, 13:50
Hallo,

ich habe ein Suchseite mit 2 Listenfeldern. Diese heißen feld1 und feld2. Übergeben wird dieses Formular durch die GET Methode.
Auf der Ergenisseite ist dann eine SQL-Abfrage die diese zwei Felder abfragt.

Recordset1.Source = "SELECT Standort, Kostenstelle FROM Durchführung WHERE Standort = '" + Replace(Recordset1__varStand, "'", "''") + "' AND Kostenstelle = '" + Replace(Recordset1__varKosten, "'", "''") + "'"


Es gibt also zwei Variablen *logisch* :holy: . Und zwar varStand und varKosten. Der Laufzeitwert ist jeweils eines der beiden zuvor genannten Felder. Das klappt auch alles ganz schön wenn ich auf der Suchseite 2 Richige bzw. vorhandene Werte auswähle. Ich möchte aber das auch bei nur einem ausgewählten Wert das Erbebins des jeweils anderen angezeigt wird. Sie müssen aber weiterhin abhängig sein.

mfg und thänx
Bernd

P.S. später sollen "noch mehr" :eek: Felder dazukommen.

Klaus Keller
18.07.2002, 15:36
Hallo EraZor,

konntest Du das Problem inzwischen lösen? Wenn nein, hier eine mögliche Lösung. Ich habe hierzu 2 Prozeduren erstellt, eine für ein Alphanumerisches, eines für ein Numerisches Datenbankfeld. Und das ganze ist auch noch einfach erweiterbar, Du musst einfach nur ein Prozeduraufruf schreiben, entweder ein Numerischer oder ein Alphanumerischer. Wie z.B.:
<font style="color:#101080;font-size:14px;font-family:Courier,New Courier,arial,sans,sans-serif;">Call Alphanumerisch("Standort", Recordset1__varStand)</font>

Ach ja: Ich habe das ganze in VBScript geschrieben, falls Du das in JavaScript geschrieben haben möchtest, sollte dies kein Problem sein.

Und was ist, wenn der Benutzer überhaupt keine Angaben gemacht hat? Auch hierzu habe ich eine Abfrage erstellt. Sollte der Benutzer keine Angaben machen, wird eine Fehlermeldung ausgegeben, diese kannst Du ändern, in der Zeile:
<font style="color:#101080;font-size:14px;font-family:Courier,New Courier,arial,sans,sans-serif;">Response.Write("Kleiner Fehler: Sie haben keine Angaben gemacht.")</font>

Falls der Benutzer eine Angabe gemacht hat, wird die Suche in der DB durchgeführt, einfach den ganzen Programmcode nach der Zeile "'Hier Suche in DB angeben" einfügen. Der Programmcode:

<font style="color:#101080;font-size:14px;font-family:Courier,New Courier,arial,sans,sans-serif;">Public SQL, strAND, Recordset1__varStand, Recordset1__varKosten

strAND = false
SQL = "SELECT * FROM Durchführung"

Call Alphanumerisch("Standort", Recordset1__varStand)
Call Alphanumerisch("Kostenstelle", Recordset1__varKosten)

'Prüfung, ob Benutzer eine Angabe gemacht hat.
If strAND = false Then
**'Fehlermeldung: Keine Angaben
**Response.Write("Kleine Fehler: Sie haben keine Angaben gemacht.")
Else
**'Hier Suche in DB angeben
End if


Public Sub AlphaNumerisch(ByVal DBFeld, ByVal RequestVariable)
**If len(RequestVariable) > 0 Then
****If strAND = false Then
******SQL = SQL & " WHERE " & DBFeld & " = '" & Replace(RequestVariable, "'", "''") & "'"
******strAND = true
****Else
******SQL = SQL & " AND " & DBFeld & " = '" & Replace(RequestVariable, "'", "''") & "'"
*****End if
**End if
End Sub


Public Sub Numerisch(ByVal DBFeld, ByVal RequestVariable)
**If len(RequestVariable) > 0 Then
****If strAND = false Then
******SQL = SQL & " WHERE & DBFeld & " = " & Replace(RequestVariable, "'", "")
******strAND = true
****Else
******SQL = SQL & " AND & DBFeld & " = " & Replace(RequestVariable, "'", "")
****End if
**End if
End Sub</font>

Ich hoffe, ich konnte Dir weiterhelfen.

MfG & CU & Thänx weri Matsch
Klaus Keller