brwMedlem sedan juli 2000619 inlägg Jag får ett fel meddelande som lyder:
"[Microsoft][Drivrutin för ODBC Microsoft Access 97] Syntaxfel (komma) i frågeuttrycket 'ID = 14, 15'"
Detta kommer när jag från en sida som listar alla poster sorterat på en kolumn i databasen som heter 'OK' och alla som har värdet 'n' (no, alltså inte OK) och sen har jag där satt in en checkbox så när man kollat att dom är OK så skall värdet i columnen OK ändras till y (yes)när man skickar formuläret
men när jag markerar alla som jag vill ändra som OK och klickar på submitknappen så skickar den med ett komma mellan varje ID-nummer... hur trimmar man bort kommat?
någon som har lösning på problemet?
(påpekas bör kanske att den fungerar när det bara finns 1 post i listan som är "icke godkänd")
Mycket tacksam för svar!
/brw
[Redigerat av brw den 07 jul 2000]
@ndersMedlem sedan juni 200032 969 inlägg detta hör nog mer hemma i ett annat forum, men iaf: pröva att använda IN-operatorn.
... WHERE ID IN (14, 15)
------------------
@nders
brwMedlem sedan juli 2000619 inlägg hmmm..
om jag skriver:
update = "SELECT * FROM recsys WHERE Id IN (" & Trim(Request.Form("Id")) & ") "
då kan jag bara ta bort 2 i taget.. annars blir det fel?
@ndersMedlem sedan juni 200032 969 inlägg nej, det skall inte bli fel.
in kan innehålla x antal värden.
däremot har jag svårt att se hur du tar bort med en selectfråga. är det inte delete from du är ute efter?
------------------
@nders
brwMedlem sedan juli 2000619 inlägg Nej det är uppdatera
jag ska visa koden så kanske du kan hjälpa mig =)
"inbox.asp"
input type="hidden" name="Id" value="<%= RS("Id")%>"
input type="checkbox" name="ok" value="y"
den hämtar alltså id från alla poster som jag listar i inboxen.. och det går till en fil som heter mpc.asp
och där ska den uppdatera fältet ok med y från befintliga värdet n
mpc.asp
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\databaser\login.mdb"
Set RS = Server.CreateObject("ADODB.Recordset")
Uppdatera = "SELECT * FROM recsys WHERE Id IN (" & Trim(Request.Form("Id")) & ") "
RS.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic
RS("ok") = Request.Form("ok")
RS.Update
RS.Close
Connect.Close
vettefan om det ska vara sådär.. men det funkar när jag bara har en post i inkorgen.
/brw
@ndersMedlem sedan juni 200032 969 inlägg får du ut flera poster måste du givetvis ha en loop som går igenom dessa, om du nu prompt skall använda dig av recordset-objektets update-metod.
men varför inte ställa en ren sql-fråga som uppdaterar allt på en gång?
Uppdatera = "UPDATE recsys SET ok = 'y' WHERE Id IN (" & Trim(Request.Form("Id")) & ") "
Connect.execute (Uppdatera)
------------------
@nders