Avatar billede scout Nybegynder
14. maj 2006 - 20:19 Der er 9 kommentarer og
1 løsning

update problem

hejsa

nu har jeg længe kæmpet med at få denne update funktion til at virke, uden held, så jeg håber nogen kan se fejlen. min database er access.

min kilde kode ser sådan ud:
<html>
<head>
<Title>Opdater oplysninger</title>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/fpdb/database.mdb")
Conn.Open DSN
SQL = "Update data SET "
SQL = SQL + "Medlemsnr = '"& request.form("medlemsnr")&"' "
SQL = SQL + "Status = '"& request.form("Status")&"' "
SQL = SQL + "Enhed = '"& request.form("Enhed")&"' "
SQL = SQL + "Navn = '"& request.form("Navn")&"' "
SQL = SQL + "Adresse = '"& request.form("Adresse")&"' "
SQL = SQL + "Postnr = '"& request.form("Postnr")&"' "
SQL = SQL + "Tlf = '"& request.form("Tlf")&"' "
SQL = SQL + "Fodselsdag = '"& request.form("Fodselsdag")&"' "
SQL = SQL + "Mail = '"& request.form("Mail")&"' "
SQL = SQL + "Indmeldt = #"& request.form("Indmeldt")&"# "
SQL = SQL + "Noter = '"& request.form("Noter")&"' "
SQL = SQL + "Udmeldt = #"& request.form("Udmeldt")&"# "
SQL = SQL + "Kontingent = '"& request.form("Kontingent")&"' "
SQL = SQL + "Where Nogle = '"& request.form("Nogle")&"' "
response.write SQL
Conn.Execute(SQL)
%>
<h1>oplysningerne er nu opdateret</h1>

</body>
</html>

den får værdierne fra en indtasningsside, men den kommer med følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''5316' Status = 'Aktiv' Enhed = 'Leder' Navn = 'Claus Albrechtsen' Adresse = 'Sct. Knudsgade 23, st. th.' Postnr = '4100 Ringsted' Tlf = '20635976' Fodselsdag = '14-03-80' Mail = 'claus@sctbendt.dk' Indmeldt = #02-01-1988# Noter = 'test' Udmeldt = #01-01-210'.

/database_interface/data/editor/update.asp, line 27

selve sql strengen ser sådan ud:
Update data SET Medlemsnr = '5316' Status = 'Aktiv' Enhed = 'Leder' Navn = 'Claus Albrechtsen' Adresse = 'Sct. Knudsgade 23, st. th.' Postnr = '4100 Ringsted' Tlf = '20635976' Fodselsdag = '14-03-80' Mail = 'claus@sctbendt.dk' Indmeldt = #02-01-1988# Noter = 'test' Udmeldt = #01-01-2100# Kontingent = 'Leder' Where Nogle = '50'

indmeldt og udmeldt er dato felt, nogle er id med autonummer, resten er tekst felter
er der nogen der kan se fejlen?
Avatar billede thesurfer Nybegynder
14. maj 2006 - 20:48 #1
Du mangler komme mellem værdierne:

"update TabelNavn set kolonne_1 = værdi1, kolonne_2 = værdi2, kolonne_3 = værdi3 ...."
Avatar billede thesurfer Nybegynder
14. maj 2006 - 20:48 #2
komme = komma.. :-)
mellem kolonnenavnene.. :-)
Avatar billede thesurfer Nybegynder
14. maj 2006 - 20:51 #3
Normalt bruger man også "&" i stedet for "+"..

SQL = SQL & "Medlemsnr = '" & request.form("medlemsnr") & "', "
SQL = SQL & "Status = '" & request.form("Status") & "', "
SQL = SQL & "Enhed = '" & request.form("Enhed") & "', "
SQL = SQL & "Navn = '" & request.form("Navn") & "', "
SQL = SQL & "Adresse = '" & request.form("Adresse") & "', "
SQL = SQL & "Postnr = '" & request.form("Postnr") & "', "
SQL = SQL & "Tlf = '" & request.form("Tlf") & "', "
SQL = SQL & "Fodselsdag = '" & request.form("Fodselsdag") & "', "
SQL = SQL & "Mail = '" & request.form("Mail") & "', "
SQL = SQL & "Indmeldt = #" & request.form("Indmeldt") & "#, "
SQL = SQL & "Noter = '" & request.form("Noter") & "', "
SQL = SQL & "Udmeldt = #" & request.form("Udmeldt") & "#, "
SQL = SQL & "Kontingent = '" & request.form("Kontingent") & "', "
SQL = SQL & "Where Nogle = '" & request.form("Nogle") & "' "
Avatar billede thesurfer Nybegynder
14. maj 2006 - 20:51 #4
Dette spm er nok til 15 points.. snup resten..
Avatar billede scout Nybegynder
14. maj 2006 - 21:12 #5
det hjalp lidt men nu er fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/database_interface/data/editor/update.asp, line 27

sql strengen ser sådan ud nu:

Update data SET Medlemsnr = '5316', Status = 'Aktiv', Enhed = 'Leder', Navn = 'Claus Albrechtsen', Adresse = 'Sct. Knudsgade 23, st. th.', Postnr = '4100 Ringsted', Tlf = '20635976', Fodselsdag = '14-03-80', Mail = 'claus@sctbendt.dk', Indmeldt = #02-01-1988#, Noter = 'test', Udmeldt = #01-01-2100#, Kontingent = 'Leder', Where Nogle = '50'

kilde koden ser sådan ud:

<html>
<head>
<Title>Opdater oplysninger</title>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/fpdb/database.mdb")
Conn.Open DSN
SQL = "Update data SET "
SQL = SQL & "Medlemsnr = '"& request.form("medlemsnr")&"', "
SQL = SQL & "Status = '"& request.form("Status")&"', "
SQL = SQL & "Enhed = '"& request.form("Enhed")&"', "
SQL = SQL & "Navn = '"& request.form("Navn")&"', "
SQL = SQL & "Adresse = '"& request.form("Adresse")&"', "
SQL = SQL & "Postnr = '"& request.form("Postnr")&"', "
SQL = SQL & "Tlf = '"& request.form("Tlf")&"', "
SQL = SQL & "Fodselsdag = '"& request.form("Fodselsdag")&"', "
SQL = SQL & "Mail = '"& request.form("Mail")&"', "
SQL = SQL & "Indmeldt = #"& request.form("Indmeldt")&"#, "
SQL = SQL & "Noter = '"& request.form("Noter")&"', "
SQL = SQL & "Udmeldt = #"& request.form("Udmeldt")&"#, "
SQL = SQL & "Kontingent = '"& request.form("Kontingent")&"', "
SQL = SQL & "Where Nogle = '"& request.form("Nogle")&"' "
response.write SQL
Conn.Execute(SQL)
%>
<h1>oplysningerne er nu opdateret</h1>

</body>
</html>


jeg har prøvet at fjerne de 2 linjer med indmeldt og udmeldt for at være sikker på at dato felterne ikke var problemet, men det gjorde ingen forskel. kan det have noget at gøre med at jeg har flere kolonner i hver post end dem jeg ønsker at opdatere?
Avatar billede thesurfer Nybegynder
14. maj 2006 - 21:23 #6
Ahh.. det er min fejl.. Der skal ikke være komme før Where:

SQL = SQL & "Kontingent = '"& request.form("Kontingent")&"' "
SQL = SQL & "Where Nogle = '"& request.form("Nogle")&"' "
Avatar billede thesurfer Nybegynder
14. maj 2006 - 21:23 #7
Der er noget galt med mit tastatur.. hver gang jeg skriver "komma", skriver den "komme".. :-)
Avatar billede scout Nybegynder
14. maj 2006 - 21:31 #8
så virker det, der skulle lige fjernes et par ' rundt om "& request.form("Nogle")&" for at det virker.

smid et svar og de 60 point er dine.
Avatar billede thesurfer Nybegynder
14. maj 2006 - 21:46 #9
Ok, så smider jeg et svar :-)
Avatar billede thesurfer Nybegynder
14. maj 2006 - 21:47 #10
Hvis "Nogle" er et tal felt (dvs, det kan/må ikke indeholder bogstaver og andre tegn), må der ikke være '-tegn udenom værdien.

Ellers skal der '-tegn ved tekst og #-tegn ved datoer..
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