Problem med checkbox och kommatecken?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • brw
    Medlem
    • 2000-07-04
    • 619

    #1

    Problem med checkbox och kommatecken?

    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]
    Troligtvis kommer det att fungera men jag är inte riktigt säker.
  • @nders
    Moderator
    Marsvin
    • 2000-06-30
    • 26914

    #2
    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
    @aviddevguy

    Comment

    • brw
      Medlem
      • 2000-07-04
      • 619

      #3
      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?
      Troligtvis kommer det att fungera men jag är inte riktigt säker.

      Comment

      • @nders
        Moderator
        Marsvin
        • 2000-06-30
        • 26914

        #4
        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
        @aviddevguy

        Comment

        • brw
          Medlem
          • 2000-07-04
          • 619

          #5
          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


          Troligtvis kommer det att fungera men jag är inte riktigt säker.

          Comment

          • @nders
            Moderator
            Marsvin
            • 2000-06-30
            • 26914

            #6
            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?

            [kod]
            Uppdatera = "UPDATE recsys SET ok = 'y' WHERE Id IN (" & Trim(Request.Form("Id")) & ") "

            Connect.execute (Uppdatera)
            [/kod]


            ------------------
            @nders
            @aviddevguy

            Comment

            Working...