Avatar billede hinkesten Praktikant
03. november 2009 - 11:40 Der er 10 kommentarer og
1 løsning

ASP: tilføj id til access db

Hey

Jeg sidder med flg. problem:

Microsoft VBScript compilation error '800a03ea'

Syntax error

/sub/opret_nyhed.asp, line 28

strSQL = strSQL & '" & Date & , "'
------------------^

Min kode er som flg:

    strNyhed = Request.Form("nyhed")
    strNyhed = Replace(strNyhed, "'", "''")
   
    strNavn = session("kaldenavn")
   
    strOverskrift = request.form("overskrift")

    ' Databaseforbindelse - husk at angive sti til din database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../db.mdb")
    Conn.Open DSN

    ' SQL sætning opbygges
    strSQL = "Insert into nyheder ("

    strSQL = strSQL & "dato, "
    strSQL = strSQL & "klokken, "
    strSQL = strSQL & "forfatter, "
    strSQL = strSQL & "overskrift, "
    strSQL = strSQL & "nyhed) "

    strSQL = strSQL & "values( "

    strSQL = strSQL & " & Date & , "
    strSQL = strSQL & " & Time & , "
    strSQL = strSQL & " & strNavn & , "
    strSQL = strSQL & " & strOverskrift & , "
    strSQL = strSQL & " & strNyhed & )"

    ' SQL sætning eksekveres
    Conn.Execute(strSQL)

    ' Luk databaseforbindelse
    Conn.Close
    Set Conn = Nothing

og linie 28 er:

strSQL = strSQL & " & Date & , "

Er der nogen der kan hjælpe?

Jeg har problemer med tegnsætningen i denne forbindelse.
Avatar billede hinkesten Praktikant
03. november 2009 - 17:02 #1
Slet ingen?
Avatar billede keysersoze Ekspert
03. november 2009 - 18:19 #2
strSQL = strSQL & Date & ", "

osv med de øvrige.
Avatar billede hinkesten Praktikant
03. november 2009 - 20:02 #3
Genialt, tak!

Vil du lave et svar?
Avatar billede hinkesten Praktikant
03. november 2009 - 20:05 #4
Hov sorry, var lige hurtig nok.

Får flg. fejl nu?

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '20:03:22'.

/sub/opret_nyhed.asp, line 35
Avatar billede keysersoze Ekspert
03. november 2009 - 20:41 #5
du skal sørge for at ramme værdierne ind i passe tegn alt afhængig af datatype og database - fx

'string
strSQL = strSQL & "'" &  Date & "', "
'dato
strSQL = strSQL & "#" &  Date & "#, "
'tal
strSQL = strSQL & Date & ", "
Avatar billede hinkesten Praktikant
04. november 2009 - 11:40 #6
Jeg bruger MS Access

Får nu flg. fejl

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '11:38:20'.

/sub/opret_nyhed.asp, line 31

med flg. kode:

    strNyhed = Request.Form("nyhed")
    strNyhed = Replace(strNyhed, "'", "''")

    ' Databaseforbindelse - husk at angive sti til din database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../db.mdb")
    Conn.Open DSN

    ' SQL sætning opbygges
    strSQL = "Insert into nyheder ("

    strSQL = strSQL & "dato, "
    strSQL = strSQL & "klokken, "
    strSQL = strSQL & "forfatter, "
    strSQL = strSQL & "overskrift, "
    strSQL = strSQL & "nyhed) "

    strSQL = strSQL & "values( "

    strSQL = strSQL & Date & ", "
    strSQL = strSQL & Time & ", "
    strSQL = strSQL & session("kaldenavn") & ", "
    strSQL = strSQL & request.form("overskrift") & ", "
    strSQL = strSQL & strNyhed & ")"

    ' SQL sætning eksekveres
    Conn.Execute(strSQL)

    ' Luk databaseforbindelse
    Conn.Close
    Set Conn = Nothing

Linie 31 er:

    Conn.Execute(strSQL)

I min access database er alle felter af typen "tekst" for at sikre mig at der ingen problemer er med at tage imod indholdet.
Avatar billede hinkesten Praktikant
04. november 2009 - 11:40 #7
Har også prøvet at ramme værdierne ind, uden held.
Avatar billede keysersoze Ekspert
04. november 2009 - 18:43 #8
så prøv at kom med den kode hvor du har forsøgt at ramme værdierne ind of fortæl samtidig hvilke datatyper du benytter.
Avatar billede hinkesten Praktikant
04. november 2009 - 20:49 #9
strNyhed = Request.Form("nyhed")
    strNyhed = Replace(strNyhed, "'", "''")

    ' Databaseforbindelse - husk at angive sti til din database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../db.mdb")
    Conn.Open DSN

    ' SQL sætning opbygges
    strSQL = "Insert into nyheder ("

    strSQL = strSQL & "dato, "
    strSQL = strSQL & "klokken, "
    strSQL = strSQL & "forfatter, "
    strSQL = strSQL & "overskrift, "
    strSQL = strSQL & "nyhed) "

    strSQL = strSQL & "values( "

    strSQL = strSQL & "'" &  Date & "', "
    strSQL = strSQL & "'" &  Time & "', "
    strSQL = strSQL & session("kaldenavn") & ", "
    strSQL = strSQL & request.form("overskrift") & ", "
    strSQL = strSQL & strNyhed & ")"

    ' SQL sætning eksekveres
    Conn.Execute(strSQL)

    ' Luk databaseforbindelse
    Conn.Close
    Set Conn = Nothing


dato: tekst
klokken: tekst
forfatter: tekst
overskrift: tekst
nyhed: notat

Kan ikke umiddelbart se fejlen?! :/
Avatar billede keysersoze Ekspert
04. november 2009 - 21:59 #10
du skal også ramme de 3 øvrige værdier korrekt ind.

Noget helt andet er så at du kan få svært ved at bruge dato og klokkeslet til noget reelt når de er gemt som tekst-værdier og ikke dato/klokkeslet.
Avatar billede hinkesten Praktikant
05. november 2009 - 16:43 #11
Så virkede det endelig, tusind tak!!
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