Hallo Doro,

m�sste Deine letzte Abfrage nicht lauten: Abfrage="SELECT * FROM filme"?

>Aber immer, wenn ich Werte �bergebe, kommt die folgende Fehlermeldung:
>1 Parameter wurden erwartet, aber es wurden zu wenig Parameter �bergeben.

Wie �bergibst Du denn die Werte? Schreibst Du die auf der Seite von Hand in
die Variablen oder machst Du das mittels des Formulars? Lass Dir doch die
Variablen mal direkt nach dem F�llen per Response.Write ausgeben.

Ist eigentlich immer gew�hrleistet, dass in mindestens zwei Variablen
(korrekte) Werte enthalten sind. Sprich: �berpr�fst Du das Formular auf
richtige Werte?

cu
Olli


-----Urspr�ngliche Nachricht-----
Von: Dorothea Erharter [mailto:[EMAIL PROTECTED]]
Gesendet: Donnerstag, 28. November 2002 22:51
An: ASP Diskussionsliste fuer Anfaenger
Betreff: [aspdebeginners] Re: Abfrage


So, jetzt brauch ich wieder eure Hilfe.

Ich hab Formular, das je 2 von 4 Suchbegriffen �bergibt, also immer
Kategorie und entweder Regisseur oder Filmtitel oder Jahr.

In einer l�ngeren IF-Anweisung wird daraus die entsprechende Abfrage
zusammengesetzt. Das funktioniert auch. Ich lasse die Abfrage, bevor ich sie
durchf�hr, am Bildschirm ausgeben. Die Variablen�bergabe und Request.Form
funktioniert also auch.

Als Default-Wert, also ELSE, geb ich der Variable Abfrage den Wert filme,
das ist der Name der Tabelle. Wenn also gar keine Werte �bergeben werden,
soll die gesamte Tabelle angezeigt werden. Auch das funktioniert.

Aber immer, wenn ich Werte �bergebe, kommt die folgende Fehlermeldung:
1 Parameter wurden erwartet, aber es wurden zu wenig Parameter �bergeben.

Ich lass den Inhalt der Var. Abfrage ja zuvor ausgeben, wenn ich
beispielsweise Titel und Kategorie �bergebe, dann liefert das Response.Write
Abfrage:
Select * FROM filme WHERE Titel LIKE '%About a boy%' AND filme_Kategorie =
'Kom�die'

Was kann da sein?

Unten der gesamte Quelltext.

lg
Doro

<%
'Die Verbindung zur Datenbank
If IsObject(Session("film_conn")) Then
 Set conn = Session("film_conn")
Else
 Set conn = Server.CreateObject("ADODB.Connection")
 strDSNPfad = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=" & Server.MapPath("film.mdb")
 conn.open strDSNPfad,"",""
End If

'************************** Variablen initialisieren und �bernehmen
*************************
Regisseur = ""
Filmtitel = ""
Jahr = ""
Kategorie = ""
Regisseur = Request.Form("Regisseur")
Filmtitel = Request.Form("Filmtitel")
Jahr = Request.Form("Jahr")
Kategorie = Request.Form("Kategorie")

'*****************************Abfrage in Abh�ngigkeit des Absenders
****************************
Dim Abfrage
If (Kategorie = "" And Regisseur <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Regisseur LIKE '%" & Regisseur &
"%'"
ElseIf (Kategorie = "" And Filmtitel <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Titel LIKE '%" & Filmtitel & "%'"
ElseIf (Kategorie = "" And Jahr <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Jahr LIKE '%" & Jahr & "%'"
ElseIf (Kategorie <> "" And Regisseur <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Regisseur LIKE '%" & Regisseur &
"%' AND filme_Typ = '" & Kategorie & "'"
ElseIf (Kategorie <> "" And Filmtitel <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Titel LIKE '%" & Filmtitel & "%'
AND filme_Typ = '" & Kategorie & "'"
ElseIf (Kategorie <> "" And Jahr <> "") Then
    Abfrage = "SELECT * FROM filme WHERE Jahr LIKE '%" & Jahr & "%' AND
filme_Typ = '" & Kategorie & "'"
ElseIf (Kategorie <> "") Then
    Abfrage = "SELECT * FROM filme WHERE filme_Typ = '" & Kategorie & "'"
Else
    Abfrage = "filme"
End If
Response.Write "<p>" & Abfrage & "</p>"

'*****************************Verbindung zur Tabelle mit Abfrage
****************************

' Verbindung zur Tabelle filme
Set Film = Server.CreateObject("ADODB.Recordset")
Film.open Abfrage, conn       'Statt dem Namen der Tabelle die Abfrage

'******************* Zun�chst mal eine Tabelle auslesen ohne Abfrage
*************************

Response.Write "<table border='1'>"

Film.MoveFirst        'Geht zum ersten Datensatz
While Not Film.EOF    'Solange nicht das Ende der Tabelle erreicht ist -
EOF: End Of File

Response.Write "<tr>"

Response.Write "<td>" & Film("Titel") & "</td><td>" & Film("Autor") &
"</td><td>" & Film("Regisseur") & "</td><td>" & Film("Schauspieler") &
"</td><td>" & Film("Inhalt_kurz") & "</td><td>" & Film("Jahr") & "</td><td>"
& Film("Land") & "</td><td>" & Film("Kategorie") & "</td>"
Response.Write "</tr>"

Film.MoveNext         'GEht zum n�chsten Datensatz
Wend                  'Geht zum Anfang der Schleife, dh macht f�r den
n�chsten Datensatz das gleiche nocheinmal

Response.Write "</table>"

'******************* Am Ende wird die Verbindung zur Tabelle geschlossen
********************
'Verbindung zur Tabelle schlie�en
Film.close
Set Film = Nothing

%>



----- Original Message -----
From: <[EMAIL PROTECTED]>
To: "ASP Diskussionsliste fuer Anfaenger" <[EMAIL PROTECTED]>
Sent: Tuesday, November 26, 2002 8:44 AM
Subject: [aspdebeginners] Re: Abfrage


: Hallo,
:
: kommentiere mal die Zeile aus, in der du das Recordset �ffnest und
: wende mal ein response.write(Abfrage) an. die Fehlermeldung deutet
: n�hmlich darauf hin, das die SQL-Anweisung nicht vollst�ndig ist,
: genauer gesagt scheint es sich um eine fehlende Spezifizierung in der
: Where-Klausel.
:
: Rainer
:
:
:
: > Liebe Leute,
: >
: > findet von euch wer den Fehler?
: > Die Verbindung zur Datenbank klappt, zur Tabelle ohne Abfrage auch,
: aber mit
: > der Abfrage kommt die Fehlermeldung:
: >
: > Syntaxfehler (fehlender operator) in
: Abfrageausdruck: 'Titel=Filmtitel'
: >
: > '************************** Variablen�bergabe
: *************************
: > Regisseur = Request.Form("Regisseur")
: > Filmtitel = Request.Form("Filmtitel")
: > Jahr = Request.Form("Jahr")
: > Kategorie = Request.Form("Kategorie")
: > '*****************************Verbindung zur Tabelle mit Abfrage
: ****************************
: >
: > ' Verbindung zur Tabelle filme
: > Set Film = Server.CreateObject("ADODB.Recordset")
: > Dim Abfrage
: > Abfrage = "SELECT * FROM filme WHERE Titel = " & Filmtitel
: > Film.open Abfrage, conn
: >
: > Die Fehlermeldung ist in der Zeile, in der das Recordset aufgemacht
: wird,
: > also in der letzten.
: > Was mach ich falsch?
: >
: > lg
: > Doro
:
:
:
: | Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
: | [aspdebeginners] als [EMAIL PROTECTED] subscribed
: | http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
: | Sie knnen sich unter folgender URL an- und abmelden:
: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp
:



| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an