Avatar billede mitbrugernavn Praktikant
23. september 2004 - 13:29 Der er 14 kommentarer og
1 løsning

update - angive kolonnenavn ud fra en request.form

har følgende

tekst1 = request.form("tekst")
kolonnenavn = request.form("kolonnevalg")
strid = request.form("id")

strSQL = "UPDATE navne SET kolonnenavn ='" & tekst1 & "' WHERE id = " & strid
conn.execute(strSQL)

kan man dette ???? altså angive hviken kolonne udfra request formen
Avatar billede eagleeye Praktikant
23. september 2004 - 13:34 #1
Ja det kan man, du skal havde variablen kolonnenavn ud:

strSQL = "UPDATE navne SET " &kolonnenavn&" ='" & tekst1 & "' WHERE id = " & strid
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 13:43 #2
tak - men jeg får lige en lille fejl - Datatyperne stemmer ikke overens i kriterieudtrykket. - og det er fordi at tekst1 er et tal - hvordan er det lige med tegnsætningen her  '" & tekst1 & "'
Avatar billede eagleeye Praktikant
23. september 2004 - 13:45 #3
Hvis kolonnen er definet som tal kolonne skal der ikke ' omkring sådan her:

strSQL = "UPDATE navne SET " &kolonnenavn&" =" & tekst1 & " WHERE id = " & strid
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 14:08 #4
den kommer med denne fejl

Der er en syntaksfejl i UPDATE-sætningen.

har et antal  request.form der kan varierer alt efter antal kolonner i db

strantal = request.form("antal") ' tæller
strid = request.form("id")

b = 0
for i = 0 to (strantal)
b = b
tekst1 = request.form("tabel" & b)
navn = request.form("kolonnenavn" & b)

response.write navn & " " & tekst1 & "<br>"

strSQL = "UPDATE navne SET "& navn &" = "& tekst &" WHERE id = " & strid
conn.execute(strSQL)
b = b+1
next

når jeg tester uden strSQL så skriver den fint navn og tekst1 som den skal - så den henter det godt nok

????? har du et forslag
Avatar billede eagleeye Praktikant
23. september 2004 - 14:19 #5
Prøv at udskrive strSQL i stedet for udføre den:

strSQL = "UPDATE navne SET "& navn &" = "& tekst &" WHERE id = " & strid
response.write strSQL & "<br>"
'conn.execute(strSQL)


og tjek kolonnenavnet er trigtigt.

men du har i strSQL kaldt den ene varialbe tekst og når du udkriver den hedder den tekst1. Det skal no være det samme begge steder:
strSQL = "UPDATE navne SET "& navn &" = "& tekst1 &" WHERE id = " & strid
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 14:35 #6
strantal = request.form("antal")
strid = request.form("id")

b = 0
for i = 0 to (strantal)
b = b

strid = request.form("id")
tekst = request.form("tabel" & b)

if tekst = "" then
tekst = "0,00"
else
tekst = request.form("tabel" & b)
end if

navn = request.form("navn" & b)

strSQL = "UPDATE graddage SET "& navn &" = "& tekst &" WHERE id = " & strid

response.write strSQL & "<br>"
conn.execute(strSQL)
b = b+1
next

den skriver følgende ud

UPDATE graddage SET normal = 12,3 WHERE id = 2
UPDATE graddage SET 2002 = 12,4 WHERE id = 2
UPDATE graddage SET 2003 = 12,5 WHERE id = 2
UPDATE graddage SET 2004 = 12,6 WHERE id = 2
UPDATE graddage SET 2005 = 0,00 WHERE id = 2

det er den rigtige tabel, de rigtige kolonner og den rette id

??????

men når jeg lægger conn.execute(strSQL) til så kommer den med fejl

Der er en syntaksfejl i UPDATE-sætningen.

????
Avatar billede eagleeye Praktikant
23. september 2004 - 14:44 #7
Det fordi , bruges til at adskille kolonner. Man skal bruge . som komme i tal.
Avatar billede eagleeye Praktikant
23. september 2004 - 14:45 #8
Er kolonnen sat til integer / realtal eller kommatal?
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 14:46 #9
ups jeg forstår ikke helt hvad du mener
Avatar billede eagleeye Praktikant
23. september 2004 - 14:47 #10
det skal være:
UPDATE graddage SET normal = 12.3 WHERE id = 2


så prøv at replace , med . :
strSQL = "UPDATE graddage SET "& navn &" = "& replace(tekst,",",".") &" WHERE id = " & strid
Avatar billede eagleeye Praktikant
23. september 2004 - 14:50 #11
kolonne navne som kun er tal kan også drille. Så prøv også at sætte [] omkring kolonne navnet hvis det er access:
strSQL = "UPDATE graddage SET ["& navn &"] = "& replace(tekst,",",".") &" WHERE id = " & strid
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 14:50 #12
kolonnen er sat til tal og decimaler

har testet via denne
strvaerdi = "20,5"
strid = "1"
strSQL = "UPDATE navne SET 2002 ='" & strvaerdi & "' WHERE id = " & strid
conn.execute(strSQL)

og det sætter den glad ind
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 15:04 #13
super nu virker det, det var replace(tekst,",",".") der skulle til. Hvad sker der egentlig - når tallet bliver tastet ind er det med komma, når man tjekker i db, vises det med komma, men når det trækkes ud igen vises det med punktum  ??
Avatar billede eagleeye Praktikant
23. september 2004 - 15:41 #14
HVis det vises men punktum kan det være fordi serveren ikke køre DK format. Prøv at tilføje denne linje i topppen af den side du udskrier det:

<% session.lcid=1030 %>
Avatar billede mitbrugernavn Praktikant
23. september 2004 - 15:44 #15
mange tak for hjælpen endnu engang.

fortsat god dag.
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