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?
Annonceindlæg fra XFlow
Du mangler komme mellem værdierne: "update TabelNavn set kolonne_1 = værdi1, kolonne_2 = værdi2, kolonne_3 = værdi3 ...."
komme = komma.. :-) mellem kolonnenavnene.. :-)
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") & "' "
Dette spm er nok til 15 points.. snup resten..
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?
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")&"' "
Der er noget galt med mit tastatur.. hver gang jeg skriver "komma", skriver den "komme".. :-)
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.
Ok, så smider jeg et svar :-)
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..
Kurser inden for grundlæggende programmering