Avatar billede jpv Nybegynder
25. august 2004 - 23:33 Der er 13 kommentarer og
3 løsninger

Lægge tal sammen hvis der står noget i forvejen i db (ASP)

Jeg skal have undersøgt om der i min tabel(kundetotal) findes et kundeid i forvejen.
Hvis der gør skal den lægge tallet sammen i felt "total" sammen med variablen "pris" altså en "update"
hvis kundeid ikke findes skal den INSERT variablerne "pris" og "unikkunde" i tabellen.

Jeg har nu siddet nogle timer med skidtet, og er kørt fast.
Håber i kan hjælpe.
Avatar billede tofte Juniormester
25. august 2004 - 23:39 #1
Hvis kundeidet ikke findes, skal variablen pris så skrives i feltet total for den kunde som netop er blevet oprettet?
Avatar billede jpv Nybegynder
25. august 2004 - 23:41 #2
ja det er rigtig
Avatar billede tofte Juniormester
25. august 2004 - 23:55 #3
dim  pris, kundid
    kundeid = 24
    pris = 300

    Set Connection = Server.CreateObject("ADODB.Connection")
    Connection.Open dbstring
    connection.execute "UPDATE kundetotal SET total=total+"&pris&" WHERE kundeid ="&kundeid,recAff
    if recAff = 0 then
        connection.execute "Insert into kundetotal (kundeid,total) values ("&kundeid&","&pris&")"
    end if
    connection.close
    set connection = nothing
Avatar billede tofte Juniormester
25. august 2004 - 23:55 #4
håber at det er det du skal bruge
Avatar billede tofte Juniormester
25. august 2004 - 23:56 #5
jeg har bare sat kundeid og pris til et eller andet.
Avatar billede jpv Nybegynder
26. august 2004 - 00:10 #6
Jeg prøver lige, tak
Avatar billede jpv Nybegynder
26. august 2004 - 00:18 #7
Nu driller serveren, jeg vender tilbage i morgen
Avatar billede jpv Nybegynder
26. august 2004 - 09:03 #8
Nu ser min kode sådan ud:
********************
dim pris, kundeid
pris = 300
kundeid = 24
Set Connection = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & sti & ""
    Connection.Open DSN
    connection.execute "UPDATE kundetotal SET 'total'='total'+'"&pris&"' WHERE 'kundeid' ='"&kundeid ', recAff"
    if recAff = 0 then
        connection.execute "Insert into kundetotal (kundeid,total) values ("&kundeid&","&pris&")"
    end if
    connection.close
    set connection = nothing
*****************************
og jeg får følgende fejlmeddelse:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression ''kundeid' ='24'.
linje 30, som er:
connection.execute "UPDATE kundetotal SET 'total'='total'+'"&pris&"' WHERE 'kundeid' ='"&kundeid ', recAff"
Avatar billede mm12010 Nybegynder
26. august 2004 - 12:03 #9
testet og virker:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
dim pris, kundeid
pris = 500
kundeid = 25
Set Connection = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
'DSN = DSN & "DBQ=" & Server.mappath("/exp/files/DB.mdb") & ""
DSN = DSN & "DBQ=" & sti & ""
    Connection.Open DSN
    Connection.execute "UPDATE kundetotal SET total=total+"&pris&" WHERE kundeid="&kundeid, recAff
    if recAff = 0 then
        Connection.execute "Insert into kundetotal (kundeid,total) values ("&kundeid&","&pris&")"
    end if
    Connection.close
    set Connection = nothing
%>
Avatar billede tofte Juniormester
26. august 2004 - 14:23 #10
Du skal være opmærksom på, hvilke databasetyper kundeid og total er. Jeg vil nok foreslå at total er et tal. kundeid er op til dig. Husk kun at bruge ' ved teksttyper. Og aldrig nogen siden ' omkring feltnavne eks WHERE 'kundeid' ='"&..... ikke ' omkring kundeid, i det tilfælde hvor det angiver navnet på feltet i databasen.
Avatar billede jpv Nybegynder
26. august 2004 - 22:16 #11
Undskyld den lange ventetid men der skete noget uforudset.
Til mm12010 får jeg denne fejlmeddelse:
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
linjen er: Connection.execute "UPDATE kundetotal SET total=total+"&pris&" WHERE kundeid="&kundeid, recAff

Til tofte total er tal kundeid er text
Avatar billede arne_v Ekspert
26. august 2004 - 22:18 #12
Connection.execute "UPDATE kundetotal SET total=total+"&pris&" WHERE kundeid='"&kundeid&"'", recAff
Avatar billede jpv Nybegynder
26. august 2004 - 22:24 #13
Nu har jeg fået det til at virke, kan i alle 3 ikke give et svar.
Mange tak
Avatar billede arne_v Ekspert
26. august 2004 - 23:12 #14
svar

(men jeg synes at mit bidrag har været beskedent sammenlignet med de to andre)
Avatar billede mm12010 Nybegynder
27. august 2004 - 07:19 #15
selv tak :o)
Avatar billede jpv Nybegynder
27. august 2004 - 10:23 #16
Mange tak for hjælpe til jer alle
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