Avatar billede riishoj Nybegynder
29. november 2002 - 19:18 Der er 13 kommentarer og
1 løsning

'Case' var ventet

Jeg får fejlen
'Case' var ventet
i dette script. Kan nogen se, hvad der er galt?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("/reservation/data.mdb")
    Conn.Open DSN
   
SELECT uge, dag, lektion, lokale FROM reserver WHERE uge = " & request.form("uge") & " AND dag = " & request.form("dag") & " AND lektion = " & request.form("lektion ") & " AND lokale = " & request.form("lokale") & "

If (Rs.BOF Or Rs.EOF) Then


' SQL sætning opbygges
strSQL = "Insert into reserver (uge,dag,lektion,initialer,klasse,lokale) values('" & Request.Form("uge") & "','" & Request.Form("dag") & "','" & Request.Form("lektion") & "','" & Request.Form("initialer") & "','" & Request.Form("klasse") & "','" & Request.Form("lokale") & "')"
Conn.Execute(strSQL)
Else
Response.Write Lokalet er ikke ledigt
End If
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede erikjacobsen Ekspert
29. november 2002 - 19:26 #1
Du skal lægge din SELECT sætning ind i en streng og
tildele den en variabel - og så skal du udføre den osse.
Avatar billede riishoj Nybegynder
29. november 2002 - 20:03 #2
Ja, det er vist gået lidt for hurtigt! Har rettet fejlen, men får nu en mærkelig fejl

Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "uge = 49 AND dag = Torsdag AND lektion = AND lokale = fysik".

/reservation/indsaet_reservation.asp, linje 34
Lektion=4 er valg i formen

Scriptet ser nu sådan ud

<%
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("/reservation/data.mdb")
    Conn.Open DSN
   
strSQL = "SELECT uge, dag, lektion, lokale FROM reserver WHERE uge = " & request.form("uge") & " AND dag = " & request.form("dag") & " AND lektion = " & request.form("lektion ") & " AND lokale = " & request.form("lokale") & ";"
Conn.Execute(strSQL)

If (Rs.BOF Or Rs.EOF) Then


' SQL sætning opbygges
strSQL = "Insert into reserver (uge,dag,lektion,initialer,klasse,lokale) values('" & Request.Form("uge") & "','" & Request.Form("dag") & "','" & Request.Form("lektion") & "','" & Request.Form("initialer") & "','" & Request.Form("klasse") & "','" & Request.Form("lokale") & "')"
Conn.Execute(strSQL)
Else
Response.Write "Lokalet er ikke ledigt"
End If
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede erikjacobsen Ekspert
29. november 2002 - 20:05 #3
request.form("lektion ")  er tom...
Avatar billede erikjacobsen Ekspert
29. november 2002 - 20:06 #4
Måske fordi den skulle være

request.form("lektion")
Avatar billede riishoj Nybegynder
29. november 2002 - 20:54 #5
Yes, den har jeg også fundet. Når den er rettet får jeg fejlen

Der er for få parametre. Der var ventet 2.

Fejlen er i strSQL Select
Avatar billede erikjacobsen Ekspert
29. november 2002 - 20:57 #6
strSQL = "SELECT uge, dag, lektion, lokale FROM reserver WHERE uge = " & request.form("uge") & " AND dag = '" & request.form("dag") & "' AND lektion = " & request.form("lektion ") & " AND lokale = '" & request.form("lokale") & "';"

Jeg antager lektion er et talfelt
Avatar billede riishoj Nybegynder
29. november 2002 - 21:01 #7
Næh, det er et tekstfelt.
Avatar billede riishoj Nybegynder
29. november 2002 - 21:02 #8
Så skal der vel ikke '....' omkring?
Avatar billede erikjacobsen Ekspert
29. november 2002 - 21:06 #9
Jo, det skal der vel :)
Avatar billede riishoj Nybegynder
29. november 2002 - 21:12 #10
giver fejlen

Datatyperne stemmer ikke overens i kriterieudtrykket
Avatar billede riishoj Nybegynder
29. november 2002 - 21:22 #11
Hvorfor sættet du kun ' ' omkring dag og lokale. Alle felterne er tekstfelter. Har prøvet at sætte ' ' omkring alle. Så får jeg bare en anden fejl

Et objekt er obligatorisk:"
Avatar billede riishoj Nybegynder
29. november 2002 - 21:39 #12
Er du der endnu?:)
Avatar billede riishoj Nybegynder
29. november 2002 - 21:58 #13
Har fundet fejlen

Conn.Execute(strSQL)
skulle være
Set rs = Conn.Execute(strSQL)
Avatar billede erikjacobsen Ekspert
29. november 2002 - 22:06 #14
Jo, jo, jeg er her - næsten. Det er normalt en god idé
at gøre felter man ved er tal, til talfelter. Det gør det
fx muligt at sortere efter dem, og det er vist nok også
lidt mere effektivt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester