Avatar billede cdc Novice
26. juni 2004 - 12:45 Der er 37 kommentarer og
2 løsninger

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT

Fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

GemProfil.asp, line 76

hele scriptet:
<html>

<head>
<title>Gem Match Resultater</title>
<LINK href="../../dream/ss_wci.css" type=text/css rel=stylesheet>
<base target="_self">

</head>

<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" bgproperties="fixed">
<%
matchnavn = request.form("matchnavn")
dato = request.form("dato")
gruppea = request.form("gruppea")
no1a = request.form("no1a")
navn1a = request.form("navn1a")
point1a = request.form("point1a")
no2a = request.form("no2a")
navn2a = request.form("navn2a")
point2a = request.form("point2a")
no3a = request.form("no3a")
navn3a = request.form("navn3a")
point3a = request.form("point3a")
no4a = request.form("no4a")
navn4a = request.form("navn4a")
point4a = request.form("point4a")
no5a = request.form("no5a")
navn5a = request.form("navn5a")
point5a = request.form("point5a")
gruppeb = request.form("gruppeb")
no1b = request.form("no1b")
navn1b = request.form("navn1b")
point1b = request.form("point1b")
no2b = request.form("no2b")
navn2b = request.form("navn2b")
point2b = request.form("point2b")
no3b = request.form("no3b")
navn3b = request.form("navn3b")
point3b = request.form("point3b")
no4b = request.form("no4b")
navn4b = request.form("navn4b")
point4b = request.form("point4b")
no5b = request.form("no5b")
navn5b = request.form("navn5b")
point5b = request.form("point5b")
gruppec = request.form("gruppec")
no1c = request.form("no1c")
navn1c = request.form("navn1c")
point1c = request.form("point1c")
no2c = request.form("no2c")
navn2c = request.form("navn2c")
point2c = request.form("point2c")
no3c = request.form("no3c")
navn3c = request.form("navn3c")
point3c = request.form("point3c")
no4c = request.form("no4c")
navn4c = request.form("navn4c")
point4c = request.form("point4c")
no5c = request.form("no5c")
navn5c = request.form("navn5c")
point5c = request.form("point5c")
matchleder = request.form("matchleder")
info = request.form("info")
sponsorimg = request.form("sponsorimg")
If Request("mode") = "ny" then

if matchnavn <> "" and dato <> "" and gruppea <> "" and no1a <> "" and navn1a <> "" and point1a <> "" and no2a <> "" and navn2a <> "" and point2a <> "" and no3a <> "" and navn3a <> "" and point3a <> "" and no4a <> "" and navn4a <> "" and point4a <> "" and no5a <> "" and navn5a <> "" and point5a <> "" and gruppeb <> "" and no1b <> "" and navn1b <> "" and point1b <> "" and no2b <> "" and navn2b <> "" and point2b <> "" and no3b <> "" and navn3b <> "" and point3b <> "" and no4b <> "" and navn4b <> "" and point4b <> "" and no5b <> "" and navn5b <> "" and point5b <> "" and gruppec <> "" and no1c <> "" and navn1c <> "" and point1c <> "" and no2c <> "" and navn2c <> "" and point2c <> "" and no3c <> "" and navn3c <> "" and point3c <> "" and no4c <> "" and navn4c <> "" and point4c <> "" and no5c <> "" and navn5c <> "" and point5c <> "" and matchleder <> "" and info <> ""and sponsorimg <> "" then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("xxxx.mdb")

SQL= "INSERT INTO match (matchnavn, dato, gruppea, no1a, navn1a, point1a, no2a, navn2a, point2a, no3a, navn3a, point3a, no4a, navn4a, point4a, no5a, navn5a, point5a, gruppeb, no1b, navn1b, point1b, no2b, navn2b, point2b, no3b, navn3b, point3b, no4b, navn4b, point4b, no5b, navn5b, point5b, gruppec, no1c, navn1c, point1c, no2c, navn2c, point2c, no3c, navn3c, point3c, no4c, navn4c, point4c, no5c, navn5c, point5c, matchleder, info, sponsorimg)"
SQL = SQL & " VALUES ('" & request.form("matchnavn") & "','" & request.form("dato") & "','" & request.form("gruppea") & "'," & request.form("no1a") & ",'" & request.form("navn1a") & "'," & request.form("point1a") & "," & request.form("no2a") & ",'" & request.form("navn2a") & "'," & request.form("point2a") & "," & request.form("no3a") & ",'" & request.form("navn3a") & "'," & request.form("point3a") & "," & request.form("no4a") & ",'" & request.form("navn4a") & "'," & request.form("point4a") & "," & request.form("no5a") & ",'" & request.form("navn5a") & "'," & request.form("point5a") & ",'" & request.form("gruppeb") & "'," & request.form("no1b") & ",'" & request.form("navn1b") & "'," & request.form("point1b") & "," & request.form("no2b") & ",'" & request.form("navn2b") & "'," & request.form("point2b") & "," & request.form("no3b") & ",'" & request.form("navn3b") & "'," & request.form("point3b") & "," & request.form("no4b") & ",'" & request.form("navn4b") & "'," & request.form("point4b") & "," & request.form("no5b") & ",'" & request.form("navn5b") & "'," & request.form("point5b") & ",'" & request.form("gruppec") & "'," & request.form("no1c") & ",'" & request.form("navn1c") & "'," & request.form("point1c") & "," & request.form("no2c") & ",'" & request.form("navn2c") & "'," & request.form("point2c") & "," & request.form("no3c") & ",'" & request.form("navn3c") & "'," & request.form("point3c") & "," & request.form("no4c") & ",'" & request.form("navn4c") & "'," & request.form("point4c") & "," & request.form("no5c") & ",'" & request.form("navn5c") & "'," & request.form("point5c") & ",'" & request.form("matchleder") & "','" & request.form("info") & "','" & request.form("sponsorimg") & "')"

Conn.Execute (SQL)

conn.Close
Set conn = nothing
Set SQL = nothing

response.redirect ("RetListe.asp")

else

response.write "Du skal udfylde *alle* felter!<br>"
response.write "<a href='java script:history.go(-1)'>Tilbage</a>"
end if

ElseIf Request("mode") = "gem" then

set conn = server.createobject("ADODB.connection")
path = Server.MapPath("xxxx.mdb")
conn.Open "DBQ="& path &";DefaultDir="& path & ";Driver={Microsoft Access Driver (*.mdb)}"

SQL="UPDATE match SET "
SQL = SQL & "matchnavn='" & matchnavn & "', "
SQL = SQL & "dato='" & dato & "', "
SQL = SQL & "gruppea='" & gruppea & "', "
SQL = SQL & "no1a='" & no1a & "', "
SQL = SQL & "navn1a='" & navn1a & "', "
SQL = SQL & "point1a='" & point1a & "', "
SQL = SQL & "no2a='" & no2a & "', "
SQL = SQL & "navn2a='" & navn2a & "', "
SQL = SQL & "point2a='" & point2a & "', "
SQL = SQL & "no3a='" & no3a & "', "
SQL = SQL & "navn3a='" & navn3a & "', "
SQL = SQL & "point3a='" & point3a & "', "
SQL = SQL & "no4a='" & no4a & "', "
SQL = SQL & "navn4a='" & navn4a & "', "
SQL = SQL & "point4a='" & point4a & "', "
SQL = SQL & "no5a='" & no5a & "', "
SQL = SQL & "navn5a='" & navn5a & "', "
SQL = SQL & "point5a='" & point5a & "', "
SQL = SQL & "gruppeb='" & gruppeb & "', "
SQL = SQL & "no1b='" & no1b & "', "
SQL = SQL & "navn1b='" & navn1b & "', "
SQL = SQL & "point1b='" & point1b & "', "
SQL = SQL & "no2b='" & no2b & "', "
SQL = SQL & "navn2b='" & navn2b & "', "
SQL = SQL & "point2b='" & point2b & "', "
SQL = SQL & "no3b='" & no3b & "', "
SQL = SQL & "navn3b='" & navn3b & "', "
SQL = SQL & "point3b='" & point3b & "', "
SQL = SQL & "no4b='" & no4b & "', "
SQL = SQL & "navn4b='" & navn4b & "', "
SQL = SQL & "point4b='" & point4b & "', "
SQL = SQL & "no5b='" & no5b & "', "
SQL = SQL & "navn5b='" & navn5b & "', "
SQL = SQL & "point5b='" & point5b & "', "
SQL = SQL & "gruppec='" & gruppec & "', "
SQL = SQL & "no1c='" & no1c & "', "
SQL = SQL & "navn1c='" & navn1c & "', "
SQL = SQL & "point1c='" & point1c & "', "
SQL = SQL & "no2c='" & no2c & "', "
SQL = SQL & "navn2c='" & navn2c & "', "
SQL = SQL & "point2c='" & point2c & "', "
SQL = SQL & "no3c='" & no3c & "', "
SQL = SQL & "navn3c='" & navn3c & "', "
SQL = SQL & "point3c='" & point3c & "', "
SQL = SQL & "no4c='" & no4c & "', "
SQL = SQL & "navn4c='" & navn4c & "', "
SQL = SQL & "point4c='" & point4c & "', "
SQL = SQL & "no5c='" & no5c & "', "
SQL = SQL & "navn5c='" & navn5c & "', "
SQL = SQL & "point5c='" & point5c & "', "
SQL = SQL & "matchleder='" & matchleder & "', "
SQL = SQL & "info='" & info & "', "
SQL = SQL & "sponsorimg='" & sponsorimg & "' "

SQL = SQL & " where id = " & CInt(Request.Querystring("id"))
'response.write sql

Set RS = Conn.Execute(SQL)

response.redirect ("RetListe.asp")

else
end if
%>
</body>
</html>
Avatar billede eagleeye Praktikant
26. juni 2004 - 12:50 #1
match er reserveret ord i Access:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q209/1/87.ASP&NoWebContent=1

Så prøv at sætte klammer [] omkring:

SQL= "INSERT INTO [match] (matchnavn,...
Avatar billede cdc Novice
26. juni 2004 - 12:54 #2
stadig samme fejl
Avatar billede cdc Novice
26. juni 2004 - 12:58 #3
point og no er tal i db tabellen, defor har jeg slettet ping'erne
Avatar billede eagleeye Praktikant
26. juni 2004 - 12:59 #4
Prøv at udskrive SQL sætningen så kan det være lettere at se om der mangler noget.
Tilføje to linjer før Conn.Executre(SQL) linjen sådan her:


response.write SQL
response.end
Conn.Execute (SQL)
Avatar billede mikkel_strack Nybegynder
26. juni 2004 - 12:59 #5
Mit forslag er at du starter med at holde det simpelt..

Indsæt kun nogle få værdier...3-4 stykker. Går det godt så tilføj nogle flere..

Man skal holde tungen lige i munden, hvis det skal gå godt at få indsat så mange værdier på én gang - ville aldrig lykkes for mig i hvert fald :o)
Avatar billede tubber Juniormester
26. juni 2004 - 13:01 #6
hvis match er reseveret så prøv at kalde tabelnavnet

tblMatch og insert into tblMatch

Bruger selv denne form for navngivning så man undgår at ramme reserverede ord....

/Tubber
Avatar billede cdc Novice
26. juni 2004 - 13:05 #7
INSERT INTO [match] (matchnavn, dato, gruppea, no1a, navn1a, point1a, no2a, navn2a, point2a, no3a, navn3a, point3a, no4a, navn4a, point4a, no5a, navn5a, point5a, gruppeb, no1b, navn1b, point1b, no2b, navn2b, point2b, no3b, navn3b, point3b, no4b, navn4b, point4b, no5b, navn5b, point5b, gruppec, no1c, navn1c, point1c, no2c, navn2c, point2c, no3c, navn3c, point3c, no4c, navn4c, point4c, no5c, navn5c, point5c, matchleder, info, sponsorimg) VALUES ('Eksperten','26 juni 2004','A',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'B',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'C',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'testnavn','test kommentar','images/small_foto.jpg')
Avatar billede cdc Novice
26. juni 2004 - 13:08 #8
alt bliver udlæst
Avatar billede eagleeye Praktikant
26. juni 2004 - 13:08 #9
Der står  point  uden ' omkring.

VALUES ('Eksperten','26 juni 2004','A',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'B',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'C',1,'test',point,2,'test',point,3,'test',point,4,'test',point,5,'test',point,'testnavn','test kommentar','images/small_foto.jpg')

Så skal der enten ' omkring eller måske skulle havde stået et tal i stedet for teksten point
Avatar billede erikjacobsen Ekspert
26. juni 2004 - 13:09 #10
Du har ingen '...' omkring ordet point

  ........'test',point,3......
Avatar billede cdc Novice
26. juni 2004 - 13:10 #11
point er tal i db
Avatar billede mikkel_strack Nybegynder
26. juni 2004 - 13:10 #12
og mangler en ' før kommentar
Avatar billede tubber Juniormester
26. juni 2004 - 13:10 #13
og ikke nok med det du skriver point er et tal men for mig ligner det en streng, du kan ikke sætte bogstaver ind som tal i db.....
Avatar billede tubber Juniormester
26. juni 2004 - 13:13 #14
hvis point er en variable skal du ha :

VALUES ('Eksperten','26 juni 2004','A',1,'test'," & point & ",2,'test',.......
Avatar billede cdc Novice
26. juni 2004 - 13:14 #15
VALUES ('eksperten','26 juni 2004','A',1,'test',1,2,'test',1,3,'test',1,4,'test',1,5,'test',1,
'B',1,'test',1,2,'test',1,3,'test',1,4,'test',1,5,'test',1,
'C',1,'test',1,2,'test',1,3,'test',1,4,'test',1,5,'test',1,'test navn','test kommentar','images/small_foto.jpg')
Avatar billede cdc Novice
26. juni 2004 - 13:15 #16
i point skal det være et tal testede med point for at beskrive cellen, men nu har jeg smidt 1 ind
Avatar billede cdc Novice
26. juni 2004 - 13:16 #17
Avatar billede eagleeye Praktikant
26. juni 2004 - 13:20 #18
Hvis du har smit 1 ind så prøv at fjerne de to linjer som udskriver SQL sætningen:

response.write SQL
response.end
Conn.Execute (SQL)

Sådan, så den bliver udført:


Conn.Execute (SQL)
Avatar billede cdc Novice
26. juni 2004 - 13:21 #19
jeg har smidt 1 ind
Avatar billede tubber Juniormester
26. juni 2004 - 13:24 #20
SQL = SQL & "sponsorimg='" & sponsorimg & "' " <--- mangler der ikke et komma ?
SQL = SQL & "sponsorimg='" & sponsorimg & "', "
Avatar billede cdc Novice
26. juni 2004 - 13:25 #21
Hmmmm nu ved jeg hvad midt problem er i scriptet. Hvis det er tomme felter, eller jeg bare laver mellemrum i cellen, kommer det fejl. Men mit problem er hvis vi kun spiller i to reækker, skal jeg ikke udfylde den sidste række, her række/gruppe C

Hvordan kan jeg tilade at der ikke bliver udfyldt noget i feltet...?
Avatar billede cdc Novice
26. juni 2004 - 13:26 #22
tubber nej, ikke når den står sidst
Avatar billede cdc Novice
26. juni 2004 - 13:26 #23
det virker nu, men mit problem er ovenstående
Avatar billede tubber Juniormester
26. juni 2004 - 13:27 #24
Du kan i db tillade null i designview....

Eller du kan sige hvis felterne er tomme skal den sætte ingen og 0 ind, og når du henter ud af db så sig at står den ingen eller 0 så skal felterne være tomme.....
Avatar billede cdc Novice
26. juni 2004 - 13:59 #25
den sidste er ikke forstået, hvor i scriptet skal jeg smide det ind
Avatar billede tubber Juniormester
26. juni 2004 - 14:04 #26
Hmm du chekker i din kode om de felter er tomme og det må de ifølge din kode ikke være hvis den skal kører sql statement hvis jeg læser det rigtigt.....

if matchnavn <> "" and dato <> "" and gruppea <> "" and no1a <> "" and navn1a <> "" and point1a <> "" and no2a <> "" and navn2a <> "" and point2a <> "" and no3a <> "" and navn3a <> "" and point3a <> "" and no4a <> "" and navn4a <> "" and point4a <> "" and no5a <> "" and navn5a <> "" and point5a <> "" and gruppeb <> "" and no1b <> "" and navn1b <> "" and point1b <> "" and no2b <> "" and navn2b <> "" and point2b <> "" and no3b <> "" and navn3b <> "" and point3b <> "" and no4b <> "" and navn4b <> "" and point4b <> "" and no5b <> "" and navn5b <> "" and point5b <> "" and gruppec <> "" and no1c <> "" and navn1c <> "" and point1c <> "" and no2c <> "" and navn2c <> "" and point2c <> "" and no3c <> "" and navn3c <> "" and point3c <> "" and no4c <> "" and navn4c <> "" and point4c <> "" and no5c <> "" and navn5c <> "" and point5c <> "" and matchleder <> "" and info <> ""and sponsorimg <> "" then
Avatar billede cdc Novice
26. juni 2004 - 14:06 #27
det er riktig, er det bare den del der skal slettes
Avatar billede tubber Juniormester
26. juni 2004 - 14:19 #28
ok
Avatar billede tubber Juniormester
26. juni 2004 - 14:24 #29
<%
If request.form("matchnavn") <> "" Then
  matchnavn = request.form("matchnavn")
Else:
  matchnavn = "ingen"
End If
osv...

og når du så henter skal de i en lignede if sætning.....
If rs("matchnavn") <> "Ingen" Then Response.Write(rs("matchnavn")
osv....
Avatar billede cdc Novice
26. juni 2004 - 14:31 #30
uha, det bliver en en mega lang kode :o)
Avatar billede tubber Juniormester
26. juni 2004 - 14:37 #31
ja desværrer......

Men du kan sætte default værdier i access, det vil sige smidder du ikke en værdi ind skriver access 0 eller ingen.....
og så er det kun når du henter ud du skal have alle de if sætninger.....

det gøres også i designview....
Avatar billede cdc Novice
01. juli 2004 - 14:46 #32
er der nogle der skal have points her :o)
Avatar billede tubber Juniormester
01. juli 2004 - 15:50 #33
Fandt du en løsning ?
Avatar billede cdc Novice
01. juli 2004 - 16:05 #34
ja på det første. men har ikke brugt tid på det sidste her, det må jeg gøre når jeg får tid til det :o)
Avatar billede tubber Juniormester
01. juli 2004 - 16:15 #35
Så må den der kom med den jo ligge et svar :)
Bed personen om det og eller skriv lukkes om 3 dage eller sådan

Så har de fået en chance :)
Avatar billede eagleeye Praktikant
01. juli 2004 - 18:42 #36
Du kan dele din SQL sætning om i to delstrenge en som tilføjer kolonner og en som tilføjer values. Hvis du så sætter tillandnullængde og en default værdi så kan man udelade de kolonne du ikke har brug for.


strKols = ""
strValues = ""
If request.form("matchnavn") <> "" Then
  strKols = strKols & ",matchnavn"
  strValues = strValues ",'" & request.form("matchnavn") & "'"
end if
If request.form("talkol") <> "" Then
  strKols = strKols & ",talkol"
  strValues = strValues "," & request.form("talkol")
end if


når du har tjekke alle kan man så gøre sådan her:

'Fjern første komma, strKols og strValues
strKols=mid(strKols,2)
strValues=mid(strValues,2)

SQL = "insert into tabelnavn (" & strKols & ") values (" & strValues & ")"
Avatar billede cdc Novice
06. juli 2004 - 17:56 #37
kommer i ikke lige med et svar begge to så laver jeg lige en deler som tak for hjælpen
Avatar billede eagleeye Praktikant
06. juli 2004 - 19:44 #38
Jo da, her et fra mig :)
Avatar billede tubber Juniormester
06. juli 2004 - 19:50 #39
Det er her :)
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