webForumDet fria alternativet

fattar inte varför jag får detta felmeddelade

ASP

11 svar · 327 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

När jag har fyllt i en sak i ett formulär får jag detta felmeddelande:

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

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id ='. 

/80/dagbok.asp, line 10

FORM-taggen i formuläret ser ut så här:

<form name="form1" method="post" action="dagbok.asp?vad=laggtill">

Då kommer man till detta ställe:

If Request.Querystring("vad") = "laggtill" Then

Addera = "Select * From dagbok" 
RS.Open Addera, Connect, adOpenStatic, adLockOptimistic

RS.AddNew

RS("datum") = Now
RS("text") = Request.Form("text")
RS("skribent") = session("username")
RS("skribentnr") = session("id")

RS.Update
rs.close
		
Response.Redirect("dagbok.asp?id="&idnr&"")

End If

Men informationen hinner inte sparas för jag får det felmeddelande jag skrev i början. Rad 10 det syftar på ser ut så här:

SQL = "Select * From members WHERE id = " &Request.QueryString("id") & ""
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

Varför får jag felmeddelande om den raden när jag skickas till dagbok.asp?vad=laggtill

Hoppas någon kan hjälpa mig med detta.

Medlem sedan dec. 200012 464 inlägg
#2

Request.QueryString("id") returnerar en tom sträng eftersom id inte finns med.

Skall id plockas från session istället, som du gör vid addnew?

Medlem sedan feb. 20011 498 inlägg
#3

Request.QueryString("id") returnerar en tom sträng eftersom id inte finns med.

Vart menar du detta?
På rad 11 eller?

Där kan jag iaf inte hämta id från session eftersom man ska kunna komma till olika dagböcker och det kan man ju inte om jag använder det session man har. Utan jag måste ha Request.QueryString("id") där.

Medlem sedan dec. 200012 464 inlägg
#4

Jo, på rad 11.

Om du vill använda request.querystring("id") så måste den vara med i din formtagg

<form name="form1" method="post" action="dagbok.asp?vad=laggtill&id=4711">

eller vill du hoppa över selecten på rad 10 om id inte är medskickat?

if  request.querystring("id") <> "" then
SQL = "Select * From members WHERE id = " &Request.QueryString("id") & ""
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 
'...
Medlem sedan feb. 20011 498 inlägg
#5

Tror du har missuppfattat en sak. Den där sql-strängen som ligger på rad 11. Den ligger ju nästan högst upp på sidan och när jag sparar informationen i formuläret, det är då det blir fel. Men felet är på rad 11, varför det blir fel på rad 11 vet jag inte, den koden hör ju inte till när jag sparar informationen. Men det skulle vara snällt om du kunde kolla igenom filen, den är inte så lång.

Medlem sedan dec. 200012 464 inlägg
#6

den koden hör ju inte till när jag sparar informationen

Den koden kommer alltid att köras.

Om du vill undvika det så får du lägga till en if omkring den kodbiten.

Medlem sedan feb. 20011 498 inlägg
#7

OK, men såg du ngt fel i koden, varför får jag det felmeddelandet?

Medlem sedan mars 20015 287 inlägg
#8

Lyssna nu på pappa LarsG, ampy så ska du se att det löser sig.

Medlem sedan feb. 20011 498 inlägg
#9

Om jag skriver så här i formtaggen:

<form name="form" method="post" action="dagbok.asp?vad=laggtill&id=1">

Då kommer jag till adressen dagbok.asp?vad=laggtill&id=1, alltså till sidan som om jag hade skrivit dagbok.asp?id=1

När jag kom till sidan dagbok.asp?vad=laggtill&id=1 så hade ingenting lagts till i databasen. Som om den hoppade över If Request.Querystring("vad") = "laggtill" Then och gick direkt till den vanliga sidan (dagbok.asp?id=1)

Varför blir det så här?

Medlem sedan mars 20015 287 inlägg
#10

Posta mer kod så fixar vi det där direkt.

Medlem sedan mars 20015 287 inlägg
#11

Ja just det, koden fanns redan ja.

Din första databas öppning körs ju hur du än skriver såvida du inte ställer ett villkor tex:

If Request.QueryString("id") <> "" then

tex precis innan du kör din sqlsats. (typ rad 11 el liknande)
Sen måste du även ha en:

End If

till den plats där den kod som visar dagboken slutar.

Medlem sedan mars 20002 836 inlägg
#12

kolla vad ditt uppdaterings recordset heter, det som ligger längst ned.......du borde nog byta RS > RecSet

cya,
PatrikB

272 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)