Avatar billede ndh Nybegynder
01. september 2003 - 09:17 Der er 18 kommentarer og
3 løsninger

Update tabeldata

Jeg har lavet et spørgeskema, hvor brugere kan indtaste deres svar, der lagret i access. Brugeren kan herefter se sit svar og vedkommende kan efterfølgende også redigere sit svar. Mit problem er, at fylder jeg alle  variablerne ind i min update-sætning får jeg flg. fejl:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 3.
/kort/redigerskema2.asp, line 233

Denne fejl får jeg ikke hvis jeg kun fx angiver at to variabler skal updates.

Min update-sætning linje 233 er:

strUpdateSkemaSQL = "UPDATE tabel SET systemnavn = '" & strsystemnavn & "', gammel = '" & strgammel & "', brugja = '" & strbrugja & "', brugnej = '" & strbrugnej & "', ikkeibrug = '" & strikkeibrug & "', leverandor = '" & strleverandor & "', tpg = '" & strtpg & "', formaal = '" & strformaal & "', hvilkedata = '" & strhvilkedata & "' , admin = '" & stradmin & "', udredn = '" & strudredn & "', andet = '" & strandet & "', korja = '" & strkorja & "', kornej = '" & strkornej & "' , korhvilken = '" & strkorhvilken & "', aeldstedata = '" & straeldstedata & "', videreja = '" & strvidereja & "', viderenej = '" & strviderenej & "', viderehvilken = '" & strviderehvilken & "', periode = '" & strperiode & "', akkum = '" & strakkum & "', engang = '" & strengang & "', tilveje = '" & strtilveje & "', slettes = '" & strslettes & "', poster = '" & strposter & "', relationelja = '" & strrelationelja & "', nej = '" & strnej & "', offentja = '" & stroffentja & "', offentnej = '" & stroffentnej & "', offenthvor = '" & stroffenthvor & "', rapportja = '" & strrapportja & "', rapportnej = '" & strrapportnej & "', rapporthvilken = '" & strrapporthvilken & "', personja = '" & strpersonja & "', personnej = '" & strpersonnej & "', personhvilken = '" & strpersonhvilken & "', andelperson = '" & strandelperson & "', hovedgrp = '" & strhovedgrp & "', sletpersonja = '" & strsletpersonja & "', sletpersonnej = '" & strsletpersonnej & "', sletpersonhvilke = '" & strsletpersonhvilke & "', opbevar = '" & stropbevar & "', fylder = '" & strfylder & "', medier = '" & strmedier & "', op = '" & strop & "', brugere = '" & strbrugere & "', arkiv = '" & strarkiv & "', drift = '" & strdrift & "', bemaerkn = '" & strbemaerkn & "', andresystja = '" & strandresystja & "', andresystnej = '" & strandresystnej & "', andresysthvilke = '" & strandresysthvilke & "', kontakt = '" & strkontakt & "', forvaltn = '" & strforvaltn & "', sektor = '" & strsektor & "', afd = '" & strafd & "' WHERE id = " & intID & ""

Hvad er galt?

Mine variablerne hentes således:
afd = request.form ("afd")
if afd = "" then afd = tom
strafd = afd

Og min forbindelse er:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("kort1.mdb")
Conn.Execute(strUpdateSkemaSQL)
Avatar billede snowball Novice
01. september 2003 - 09:25 #1
Har kun lige kastet et hurtigt blik på den, men hvorfor har du & "" med til sidst !? Der skal jo ikke plinger rundt om et tal.

Snowball
Avatar billede nmh Nybegynder
01. september 2003 - 09:27 #2
Prøv med systemnavn=" ' & strsystemnavn & ' "...
altså først " og så '.
Jeg kan ikke se, hvad du har gjort.
Avatar billede ndh Nybegynder
01. september 2003 - 09:31 #3
Snowball: Prøver jeg dit forslag får jeg en ny fejl:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/kort/redigerskema2.asp, line 230, column 1982

Nmh: Hvilken forskel skulle det gøre?
Avatar billede cesil Nybegynder
01. september 2003 - 09:40 #4
Hvad indeholder variablen tom?
Måske du skal ændre til
if afd = "" then afd = "tom"
eller if afd = "" then afd = NULL

Hvis ikke det virker så prøv og udskrive strUpdateSkemaSQL

response.write strUpdateSkemaSQL
response.end
Avatar billede nmh Nybegynder
01. september 2003 - 09:45 #5
du starter med SQL="....systemnavn=
nu burde der komme " og derefter '
Ellers er der ubalance vil jeg mene.
Har du ikke gjort det omvendt?
Men man kan ikke se forskellen på ' " og " ' i din udskrift.
Avatar billede ndh Nybegynder
01. september 2003 - 09:56 #6
nmh: Jeg får en syntaks fejl ved dit forslag i sætningen.

Cesil: Variablen tom = "-"
Avatar billede cesil Nybegynder
01. september 2003 - 10:01 #7
så sæt [] rundt om alle tabelnavne, måske der er et reserveret ord imellem

UPDATE tabel SET [systemnavn] = '" & strsystemnavn
Avatar billede cesil Nybegynder
01. september 2003 - 10:02 #8
prøv lige den her

response.write strUpdateSkemaSQL
response.end

lige efter din update sætning
Avatar billede nmh Nybegynder
01. september 2003 - 10:02 #9
Til sidst står der
WHERE id = " & intID & ""

Burde nok være WHERE id = " & intID

Prøv at få de til at virke, hvor du kun medtager nogle få af felterne. Der er givet vis en fejl i "virvaret" af " og '.
Avatar billede cesil Nybegynder
01. september 2003 - 10:08 #10
er alle dine felter text felter?
din update sætning er lavet som om de er. Så hvis du har talfelter skal du rette til så typerne passer med din sql
Avatar billede ndh Nybegynder
01. september 2003 - 10:08 #11
nmh: Gør ingen forskel.

cesil: Jeg får flg. resultat:

UPDATE tabel SET systemnavn = '356132647', gammel = '19', brugja = '-', brugnej = 'nej', ikkeibrug = '-', leverandor = '-', tpg = 'økonomi12', formaal = '-', hvilkedata = '-' , admin = '-', udredn = '-', andet = '-', korja = '-', kornej = '-' , korhvilken = '-', aeldstedata = '-', videreja = '-', viderenej = '-', viderehvilken = '', periode = '-', akkum = '-', engang = '-', tilveje = '-', slettes = '-', poster = '-', relationelja = '-', nej = '-', offentja = '-', offentnej = '-', offenthvor = '-', rapportja = '-', rapportnej = '-', rapporthvilken = '', personja = '-', personnej = '-', personhvilken = '', andelperson = '-', hovedgrp = '-', sletpersonja = '-', sletpersonnej = '-', sletpersonhvilke = '-', opbevar = '-', fylder = '-', medier = '-', op = '-', brugere = '-', arkiv = '-', drift = '-', bemaerkn = '-', andresystja = '-', andresystnej = '-', andresysthvilke = '-', kontakt = '-', forvaltn = '-', sektor = '-', afd = '-' WHERE id = 141
Avatar billede ndh Nybegynder
01. september 2003 - 10:14 #12
I tabellen er alle mine felter notat-felter.

I spørgeskemaet bruges checkboxe, til en række ting.
Avatar billede snowball Novice
01. september 2003 - 10:14 #13
Er det med vilje din viderehvilken, rapporthvilken og personhvilken er lig med '' og ikke '-' som de andre !?

Snowball
Avatar billede cesil Nybegynder
01. september 2003 - 10:20 #14
Sæt [] rundt om alle tabelnavne, måske der er et reserveret ord imellem

UPDATE tabel SET [systemnavn] = '" & strsystemnavn
Avatar billede cesil Nybegynder
01. september 2003 - 10:21 #15
prøv og updaterer et par felter af gangen fx

UPDATE tabel SET systemnavn = '356132647', gammel = '19' WHERE id = 141

UPDATE tabel SET systemnavn = '356132647', gammel = '19', brugja = '-' WHERE id = 141

indtil du finder ud af hvor fejlen er
Avatar billede nmh Nybegynder
01. september 2003 - 10:24 #16
men nu ser det da fornuftigt ud. Der er lige det med rapporthvilken m.m., som snowball skriver.Men hvorfor ikke prøve at få noget simplet til at virke først?
Hvilken fejlmedelelse får du nu?
Avatar billede snowball Novice
01. september 2003 - 10:42 #17
cesil: Han bruger ikke nogen reservedrede SQL ord. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ra-rz_9oj7.asp

Snowball
Avatar billede eagleeye Praktikant
01. september 2003 - 10:52 #18
Dette:

personhvilken = '',

Vil med stor sansynlighed lave en fejl. Hvis du vil indsætte tom bør du bruge Null. Det gør det lidt mere besværligt da der ikke skal ' omring Null sådan her skal de se ud:

personhvilken = Null,

Du kan også putte - i som du gør for alle de andre kolonner er der en grund til to af dem ikke har - men er helt tom?
Avatar billede ndh Nybegynder
02. september 2003 - 08:27 #19
Det er løst, der var selvfølgelig en fejl i variabelnavnene. Snowball og eagleeye vil i sende et svar, så jeg kan fordele pointene.
Avatar billede snowball Novice
02. september 2003 - 09:29 #20
Svar :)

Snowball
Avatar billede eagleeye Praktikant
02. september 2003 - 16:49 #21
Ok ;)
et svar fra mig.
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