Avatar billede george Nybegynder
29. december 2004 - 11:53 Der er 16 kommentarer og
1 løsning

problem med UPDATE i Access DB

Er der nogen der kan se hvad der er galt her ?

If TmpMode = "update" Then
'Update record
  iID = Request.form("id")
  iDay=    Request.form("day")
  iTime = Request.form("time")
  iBeskrivelse = Request.form("comment")
  iInstruktor = Request.form("instruktor")
  iSal = Request.form("sal")

SQL = "UPDATE Timeplan SET "
SQL = SQL & "Day = " & iDay & ", "
SQL = SQL & "Time = " & iTime & ", "
SQL = SQL & "Beskrivelse = " & iBeskrivelse & ", "
SQL = SQL & "Instruktor = " & iInstruktor & ", "
SQL = SQL & "Sal = " & iSal & " "
SQL = SQL " WHERE ID = " & iID
'Cout SQL
'Set rs = Conn.Execute(SQL)
'Response.Redirect "admin_timeplan.asp"
End If

Kommer med følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/bodygym/admin/admin_timeplan.asp, line 53


Når jeg kører en Response.Write på SQL'en for at se hvad der sker ser den således ud:

UPDATE Timeplan SET Day = Tirsdag, Time = 18.00-19.00, Beskrivelse = Fedtforbrænding, Instruktor = Lisbeth1, Sal = 1 WHERE ID = 11
Avatar billede Slettet bruger
29. december 2004 - 11:54 #1
Hvis dine felter er af typen tekst skal du have ' omkring eks.

SQL = SQL & "Beskrivelse = '" & iBeskrivelse & "', "
Avatar billede erikjacobsen Ekspert
29. december 2004 - 11:55 #2
Den sku' nok se sådan ud:

UPDATE Timeplan SET Day = 'Tirsdag', Time = '18.00-19.00', Beskrivelse = 'Fedtforbrænding', Instruktor = 'Lisbeth1', Sal = 1 WHERE ID = 11
Avatar billede Slettet bruger
29. december 2004 - 11:57 #3
Og hvis jeg husker ret så er Time et reserveret ord så der skal [] omkring også

SQL = SQL & "[Time] = '" & iTime & "', "
Avatar billede Slettet bruger
29. december 2004 - 11:59 #4
Du kan se en liste over de ord som er reserverede her http://support.microsoft.com/kb/209187/EN-US/ det vil så sige at hvis du har en kolonne som hedder det samme som et af ordene skal du bruge [] omkring som vist i ovenstående kommentar.
Avatar billede Slettet bruger
29. december 2004 - 12:02 #5
Og så lige et godt råd, du har uafsluttede spørgsmpl helt tilbage til 2000, jeg vil anbefale dig at få dem lukket :-)

http://www.eksperten.dk/list.phtml?sort=&order=DESC&status_1=on&status_2=on&spm_creator=george&spm_part=&spm_answer=&find=&engine=exp
Avatar billede george Nybegynder
29. december 2004 - 12:03 #6
Alle mine felter er tekstfelter også "sal".

Så ser min SQL sådan ud :
UPDATE Timeplan SET Day = 'Tirsdag', Time = '18.00-19.00', Beskrivelse = 'Fedtforbrænding', Instruktor = 'Lisbeth1', Sal = '1' WHERE ID = 11

Jeg får samme fejl ??
Avatar billede Slettet bruger
29. december 2004 - 12:04 #7
Prøv lige den med [] omkring Time
Avatar billede erikjacobsen Ekspert
29. december 2004 - 12:06 #8
Forsåvidt må du sætte [] omkring alle navne ;)

UPDATE [Timeplan] SET [Day] = 'Tirsdag', [Time] = '18.00-19.00', [Beskrivelse] = 'Fedtforbrænding', [Instruktor] = 'Lisbeth1', [Sal] = '1' WHERE [ID] = 11

Er dit ID tal eller tekst
Avatar billede george Nybegynder
29. december 2004 - 12:42 #9
ID er Autonum = tal -> right ?
Avatar billede george Nybegynder
29. december 2004 - 12:46 #10
Så virker det.

Tak for hjælpen.

Jeg syntes aldrig jeg har brugt [] før i en UPDATE. Hvordan kan det være man skal have dem på nu ? Er det fordi jeg bruger en Access 2003 DB ?

Og så lige et par svar så vi kan dele point ud
Avatar billede george Nybegynder
29. december 2004 - 12:47 #11
En anden ting jeg lige kom til at tænke på. Kan man oprette nye "records" med SQL i en Access DB ?
Avatar billede Slettet bruger
29. december 2004 - 12:51 #12
Et svar kommer her. Og ja du kan bruge INSERT INTO tabel (felt1,felt2) VALUES (værdi1,værdi2) er ikke 100% sikker på syntaksen :-)
Avatar billede george Nybegynder
29. december 2004 - 12:56 #13
Ja det kan man selvfølgelig, dumt spørgsmål ;-)
Avatar billede Slettet bruger
29. december 2004 - 12:56 #14
Angående [] så var den liste jeg fandt til Access 2000 så der var de ihvertfald også :-)
Avatar billede Slettet bruger
29. december 2004 - 13:00 #15
Tja hvis man ikke ved det så er det ikke et dumt spørgsmål :-)
Avatar billede Slettet bruger
29. december 2004 - 13:28 #16
Takker for point. erikjacobsen sig til hvis du føler dig snydt så opretter jeg et spm. til dig med point.
Avatar billede erikjacobsen Ekspert
29. december 2004 - 13:45 #17
Nej tak, jeg samler slet ikke på point.
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