07. oktober 2008 - 14:11Der er
17 kommentarer og 1 løsning
fejl i update
Jeg fatter det bare ikke ... hvorfor fejler nedenstående kode:
if request.querystring("db")="send_to_med" then
dim thisvalue tildel = "Ja" For Each chk in Request.form thisvalue = request.form(chk) if thisvalue = "yes" then if valid=0 then retSQL="UPDATE memberlist SET medical_consultant = '" & tildel & "' WHERE id = " +Cstr(chk)&" "
response.write(retSQL) conn.execute(retsql) end if end if next 'response.redirect "list.asp?slet=ok&type="&hvilken
end if
Fejlen fra IE: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "id = 7FEC537A-7725-4ED6-B798-E70CF5356851}".
hmm - det er mig, som tåger lidt : med denne kode, kan den jo kun sætte til JA, og hvis jeg afchecker boxen opdateres db ikke:
dim thisvalue 'tildel = True For Each chk in Request.form thisvalue = request.form(chk) if thisvalue = "yes" then if request.form(chk) = "yes" then tildel = 1 else tildel = 0 end if if valid=0 then retSQL="UPDATE memberlist SET medical_consultant = '" & tildel & "' WHERE id = '" & Cstr(chk) & "'" response.write(retSQL) conn.execute(retsql) end if end if next 'response.redirect "list.asp?slet=ok&type="&hvilken
end if
kan man ikke også afchecke i denne forbindelse ...
nej, det blev jeg heller ikke så meget klogere af, men sammenhængen er nok også lidt uklar:
jeg har en liste med navne fra access, hvor et af felterne er en Yes/No, som jeg godt kan klikke til Yes, men ikke til fra-vælge igen.
Dette er funktionen:
if request.querystring("db")="send_to_med" then
dim thisvalue 'tildel = True For Each chk in Request.form thisvalue = request.form(chk) if thisvalue = "yes" then if request.form(chk) = "yes" then tildel = 1 else tildel = 0 end if if valid=0 then retSQL="UPDATE memberlist SET medical_consultant = '" & tildel & "' WHERE id = '" & Cstr(chk) & "'" response.write(retSQL) conn.execute(retsql) end if end if next 'response.redirect "list_to_medical_consultant.asp?slet=ok&type="&hvilken
end if
her er checkboxen:
<td align="center" width="15%" class="rak3"> <input type="checkbox" name="<%=rs("id")%>" value="yes" <%If rs("medical_consultant") = True Then Response.Write " CHECKED" End If Response.Write " name=""medical_consultant" %> "></td>
jeg vil umiddelbart mene at mit forslag burde virke - grunden til at det ser så meget mindre ud er, at der bla ikke er dobbelttjek for værdien af formfeltet og da databasen altid skal opdateres er der heller ikke behov for tjek inden sql'en.
UPDATE memberlist SET medical_consultant = '1' WHERE id = '{B1785509-1035-4F83-B793-FE952E5A8DFE}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{ADD9173F-539B-47B1-B80F-5796FD6AFF20}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{4E43471E-C1C9-41AB-AEE5-20AC54700E1A}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{82E4AD49-D917-4863-A73B-57AA297EDBA4}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{8E0AA99A-C670-48FF-A57B-72B4E15B7D5F}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{833561EA-6D8A-48E9-8308-D954964B229B}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{8DC74C8E-CAA9-4EAE-B560-48A6AF55C852}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{018ED8B7-2D3E-4ED1-A5A0-96342BE9239C}'UPDATE memberlist SET medical_consultant = '0' WHERE id = 'Submit'
som du ser, så vinger den ikke af ... her burde alle vel være? den sidste id = submit er vel lidt underlig?
hvis jeg uden at røre checkboxene klikker på submit så får jeg følgende retsql:
UPDATE memberlist SET medical_consultant = '1' WHERE id = '{B1785509-1035-4F83-B793-FE952E5A8DFE}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{ADD9173F-539B-47B1-B80F-5796FD6AFF20}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{4E43471E-C1C9-41AB-AEE5-20AC54700E1A}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{82E4AD49-D917-4863-A73B-57AA297EDBA4}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{8E0AA99A-C670-48FF-A57B-72B4E15B7D5F}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{833561EA-6D8A-48E9-8308-D954964B229B}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{8DC74C8E-CAA9-4EAE-B560-48A6AF55C852}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{018ED8B7-2D3E-4ED1-A5A0-96342BE9239C}'UPDATE memberlist SET medical_consultant = '1' WHERE id = '{664D515E-707E-4DFB-9B6A-4286BBA1D65D}'
hvis jeg derimod afcheckker de 8 af de 9, så får jeg følgende retsql:
UPDATE memberlist SET medical_consultant = '1' WHERE id = '{ADD9173F-539B-47B1-B80F-5796FD6AFF20}'
Altså kun en : altså retter den ikke de 8, som jeg har af-checket?
Som du ser, så tager den ikke submit formfeltet med nu - tak for det.
dim thisvalue 'tildel = True For Each chk in Request.form thisvalue = request.form(chk) if chk <> "Submit" Then if request.form(chk) = "yes" then tildel = 1 else tildel = 0 end if
retSQL="UPDATE memberlist SET medical_consultant = '" & tildel & "' WHERE id = '" & Cstr(chk) & "'" conn.execute(retsql) response.write(retsql) end if next 'response.redirect "list.asp?slet=ok&type="&hvilken
end if
Formularen:
<td align="center" width="15%" class="rak3"> <input type="checkbox" name="<%=rs("id")%>" value="yes" <%If rs("medical_consultant") = True Then Response.Write " CHECKED" End If Response.Write " name=""medical_consultant" %> "></td>
det skyldes måske at ikke-chekkede checkboxe ikke sendes afsted og dermed ikke kan fanges i din foreach løkke - så du i stedet er nødt til at loope din løkke fra checkbox-siden igennem og ud fra den forespørge direkte på alle dine checkboxe.
som allerede foreslået - lav det samme loop i din update som du gør når du genererer checkboxene og gå så ind og forespørg på hver enkelt specifikke checkbox
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.