Avatar billede baltazar_ Nybegynder
03. maj 2001 - 11:28 Der er 22 kommentarer og
1 løsning

rs(id) og forms ?

Jeg er ved at lave en side hvor der søges på nogle enheder med hver deres unikke ID som udgør RS(\"ID\") herefter udskrives i en tabel med resultatet af søgningen linie for linie og gæsten kan herefter skrive hvor mange enheder der ønskes i et textfelt ...MEN nu kommer problemmet...kommer der flere søgeresultater frem og man så skriver det ønskede antal i text text formen som ser således ud:

Response.Write \"<td><form action=\"\"add_this.asp?\"&rs(\"varenr\")& rs(\"navn\")& rs(\"type\")& rs(\"pris\")&\" \"\"method=\"\"post\"\"><input type=\"\"hidden\"\" name=\"\"b1\"\" VALUE=\"& rs(\"varenr\") &\"><input type=\"\"hidden\"\" name=\"\"b2\"\" VALUE=\"\"\"& rs(\"navn\") &\"\"\"><input type=\"\"hidden\"\" name=\"\"b3\"\" VALUE=\"& rs(\"type\") &\"><input type=\"\"hidden\"\" name=\"\"b4\"\" VALUE=\"& rs(\"pris\") &\"><input type=\"\"text\"\" name=\"\"b5\"\" size=\"\"1\"\"><input type=\"\"hidden\"\" name=\"\"b6\"\" VALUE=\"& rs(\"ID\") &\"><input type=\"\"image\"\" name=\"\"indput\"\" src=\"\"pic/pic.gif\"\"></font></td></tr>\" & vbcrlf

så for jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\'
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"antalPaaLager -\".


Min sql som den siger der er fejl i er denne:

SQL = \"UPDATE varesortiment set antalPaaLager = antalPaaLager - \" & Request.form(\"b5\")& \" where ID = \"&Request.form(\"b6\")
conn.execute(SQL)

Hvis der kun kommer en enkelt linie frem så fungere det fint og gæstens ønskede antal bliver registreret korrekt

er der en der er klogere end mig med hensyn til dette. ???

det er guld til vinderen


Avatar billede nute Nybegynder
03. maj 2001 - 11:30 #1
prøv denne:

SQL = \"UPDATE varesortiment set antalPaaLager = SUM(antalPaaLager - \" & Request.form(\"b5\")& \") where ID = \"&Request.form(\"b6\")

/nute
Avatar billede nil.dk Nybegynder
03. maj 2001 - 11:30 #2
Prøv at skrive:

SQL = \"UPDATE varesortiment set antalPaaLager = antalPaaLager & \" & Request.form(\"b5\")& \" where ID = \"&Request.form(\"b6\")
conn.execute(SQL)
Avatar billede nil.dk Nybegynder
03. maj 2001 - 11:31 #3
nej glem det.. det var en fejl...
Avatar billede dudal Nybegynder
03. maj 2001 - 11:33 #4
intTal = CINT(Request.form(\"b5\"))

SQL = \"UPDATE varesortiment set antalPaaLager = antalPaaLager - \" & intTal & \" where ID = \"&Request.form(\"b6\")
conn.execute(SQL)

Prøv det

/dudal
Avatar billede dudal Nybegynder
03. maj 2001 - 11:34 #5
Evt:

intTal = CINT(Request.form(\"b5\"))

SQL = \"UPDATE varesortiment set antalPaaLager = (antalPaaLager - \" & intTal & \") where ID = \" &Request.form(\"b6\")
conn.execute(SQL)
Avatar billede nute Nybegynder
03. maj 2001 - 11:50 #6
hmmm....når jeg leser ditt spm igjen, så ser jeg at du vil trekke den nye verdi fra det som allerede eksisterer i den kolonnen. Jeg er faktisk ikke sikker på om du kan referere til den eksisterende verdi på den måten du har gjort. Jeg ville heller gjort noe som dette:

SQL = \"UPDATE varesortiment set antalPaaLager = SUM((SELECT antalPaaLager FROM varesortiment WHERE ID = \" & request.form(\"b6\")) - \" & Request.form(\"b5\")& \") where ID = \"&Request.form(\"b6\")

det er fullstendig likegyldig om verdien du skal trekke fra allerede er av typen integer eller ikke, for denne blir satt inn som en String i din SQL uansett...

/nute


Avatar billede dudal Nybegynder
03. maj 2001 - 11:53 #7
Nute>> Det kan man nu altså godt. Bruger det selv nogle steder.

/dudal
Avatar billede nute Nybegynder
03. maj 2001 - 11:54 #8
oki...:) jeg var bare ikke sikker :)
Avatar billede erikjacobsen Ekspert
03. maj 2001 - 12:01 #9
baltazar_ det er lidt bøvlet, men du kan jo ikke bruge det samme navn to gange
i samme form, så du skal \"opfinde\" nye navne for hver vare. Ikke?
Avatar billede baltazar_ Nybegynder
03. maj 2001 - 12:08 #10
erikjakobsen


Jeg synes ik jeg kan se jeg skulle have brugt det samme navn to gange  kigger lige efter
Avatar billede erikjacobsen Ekspert
03. maj 2001 - 12:11 #11
Står resultaterne ikke i samme form? Hvis de gør har du jo \"b6\" to gange f.eks.
Avatar billede baltazar_ Nybegynder
03. maj 2001 - 12:17 #12
:O) du siger sgu da noget der...jeg vil lige prøve at give formen rs(\"ID\") som navn i stedet


BRB
Avatar billede nute Nybegynder
03. maj 2001 - 12:31 #13
hehe...man skal ikke *IKKE* bruke SUM....
Avatar billede dudal Nybegynder
03. maj 2001 - 12:41 #14
Prøv med dette istedet: (Har tilføjet et </form>)

Response.Write \"<td><form action=\"\"add_this.asp\"\" \"\"method=\"\"post\"\"><input type=\"\"hidden\"\" name=\"\"b1\"\" VALUE=\"& rs(\"varenr\") &\"><input type=\"\"hidden\"\" name=\"\"b2\"\" VALUE=\"\"\"& rs(\"navn\") &\"\"\"><input type=\"\"hidden\"\" name=\"\"b3\"\" VALUE=\"& rs(\"type\") &\"><input type=\"\"hidden\"\" name=\"\"b4\"\" VALUE=\"& rs(\"pris\") &\"><input type=\"\"text\"\" name=\"\"b5\"\" size=\"\"1\"\"><input type=\"\"hidden\"\" name=\"\"b6\"\" VALUE=\"& rs(\"ID\") &\"><input type=\"\"image\"\" name=\"\"indput\"\" src=\"\"pic/pic.gif\"\"></font></form></td></tr>\" & vbcrlf

Så burde din første sql faktisk virke.

/dudal
Avatar billede baltazar_ Nybegynder
03. maj 2001 - 12:42 #15
jeg har brugt denne sql nu

SQL = \"UPDATE varesortiment set antalPaaLager = SUM  (antalPaaLager - \" & Request.form(\"b5\")& \") where ID = \"&Request.form(\"b6\")

dette er output der fremkommer nu...

UPDATE varesortiment set antalPaaLager = SUM (antalPaaLager - , , , , , 2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) where ID = 32, 33, 1, 2, 23, 25, 27, 28, 29, 30, 34, 35, 36, 37, 38, 39, 31, 40, 41, 73, 42, 62, 43, 44, 46, 47, 63, 48, 52, 53, 60, 54, 61

Og så kommer der en fejl i linien heromkring som er en  addnew connection der indsætter data ud fra det valgte der hedder således
FEJL:
Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e21\'

Der opstod fejl.

/public/shop2/add_this.asp, linje 54

KODE hvori fejlen ligger

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"access/handel.mdb\") & \";UID=admin;PWD=;\"

    Set rs = Server.CreateObject(\"ADODB.RecordSet\")
    strSQL = \"Select * From \" & Request.Cookies(\"cook\")(\"refid\")
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew    \'\'---herefter kommer linie 54--
      rs(\"refid\") = Request.cookies(\"cook\")(\"refid\")
      rs(\"varenr\") = request.form(\"b1\")
      rs(\"navn\") = request.form(\"b2\")
      rs(\"type\") = request.form(\"b3\")
      rs(\"pris\") = request.form(\"b4\")
      rs(\"antal\") = request.form(\"b5\")
      rs.Update

    rs.Close



Avatar billede erikjacobsen Ekspert
03. maj 2001 - 13:46 #16
du får de lister af tal, fordi feltnavnet \"b6\" optræder flere gange.
Avatar billede baltazar_ Nybegynder
03. maj 2001 - 13:58 #17
hmmmm hvad dælen gør gør man så...hvis jeg ændrer min form som DUDAL siger...så skal jeg kode hele addnew delen om..det er jeg ikke meget for da det er temmeligt meget kode
addnew funktionen for ikke de data den skal arbejde med når det hele laves om til en post string som i DUDAL`s forslag
Avatar billede erikjacobsen Ekspert
03. maj 2001 - 14:02 #18
Du kan lave det i hver sit <form>-tag, men så virker submitknappen kun for
dén form. Men ja, ellers skal du kode det om ... det er jo det vi kan lide at lave,
ikke?
Avatar billede baltazar_ Nybegynder
14. maj 2001 - 20:53 #19
b
Avatar billede erikjacobsen Ekspert
14. maj 2001 - 20:59 #20
...og du forventer at du også får hjælp i fremtiden på eksperten?? Drøm sødt.
Avatar billede parazite Nybegynder
15. maj 2001 - 02:39 #21
ej : Han er jo ikke selv skrap til at fortælle det, såeh: http://www.eksperten.dk/spm/72726
Avatar billede erikjacobsen Ekspert
15. maj 2001 - 07:04 #22
Har set den - det lyder som en dårlig undskyldning, så jeg gider ikke svare på det.
Avatar billede baltazar_ Nybegynder
15. maj 2001 - 07:31 #23
tag det som du vil erik...

udover det så takker jeg for den hjælp jeg har modtaget herinde og jeg skal da nok lade være med at forstyrre for fremtiden hvis det er det i ønsker ?.

NB. Det var ikke for at undskylde...
det er ikke min stil at bruge tid på den slags
Dog skal ret være ret,og derfor spurgte jeg efter dig så du kunne få hvad jeg havde udbudt for det spørgsmål som du svarede på.

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