Avatar billede radda Nybegynder
07. oktober 2008 - 14:11 Der 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}".
Avatar billede keysersoze Guru
07. oktober 2008 - 14:21 #1
retSQL="UPDATE memberlist SET medical_consultant = '" & tildel & "' WHERE id = '" & Cstr(chk) & "'"
Avatar billede radda Nybegynder
07. oktober 2008 - 14:28 #2
thx - u rock

R
Avatar billede radda Nybegynder
07. oktober 2008 - 15:12 #3
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 ...

R
Avatar billede keysersoze Guru
07. oktober 2008 - 15:30 #4
uden at kende den samlede mening så måske;

For Each chk in Request.form
    thisvalue = request.form(chk)

    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)
next
Avatar billede tiger_dk Mester
07. oktober 2008 - 15:32 #5
...og det bliver man så ikke klogere af.....
Avatar billede radda Nybegynder
07. oktober 2008 - 15:41 #6
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">&nbsp;<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 håber, at det giver mening?

R
Avatar billede keysersoze Guru
07. oktober 2008 - 15:57 #7
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.
Avatar billede radda Nybegynder
07. oktober 2008 - 16:02 #8
altså, den vælger fint til (altså Yes) men når jeg vinger af, så forbliver den checket ...
Avatar billede radda Nybegynder
07. oktober 2008 - 16:07 #9
her er response.write på den:


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?

jeg er rimelig lost, og værdsætter hjælpen
Avatar billede tiger_dk Mester
07. oktober 2008 - 16:09 #10
det var nu mere ment i spøg, har virkelig ingen forstant på det her !!!!
Avatar billede keysersoze Guru
07. oktober 2008 - 16:14 #11
hvis alle sættes til 1 skyldes det vel at value i alle tilfælde er yes.

submit, som jo også er et formfelt, kan du undgå fx undgå ved at pakke dit arbejde ind i en if;

if chk <> "Submit" Then
..
end if
Avatar billede radda Nybegynder
07. oktober 2008 - 16:20 #12
hmm lige nu har jeg 9 checked ud af 50.

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.
Avatar billede keysersoze Guru
07. oktober 2008 - 17:47 #13
hvordan ser din kode ud nu
Avatar billede radda Nybegynder
07. oktober 2008 - 20:10 #14
her 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 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">&nbsp;<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>
Avatar billede keysersoze Guru
09. oktober 2008 - 18:35 #15
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.
Avatar billede radda Nybegynder
09. oktober 2008 - 20:29 #16
ja, det giver mening ---

har du et bud på, hvordan funktionen skal se ud?

R
Avatar billede keysersoze Guru
11. oktober 2008 - 11:04 #17
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

'loop start
myname = rs("id")
myval = request.form(myname)
'update
'end loop
Avatar billede radda Nybegynder
13. oktober 2008 - 21:37 #18
tak for hjælpen

lukker
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