Avatar billede Keld Nielsen Professor
23. maj 2006 - 22:21 Der er 18 kommentarer og
1 løsning

overfør fra mail til side

Jeg har siddet og basket men en overførsel fra en mail til en side - det går ikke så godt!

<%
' Databaseforbindelse oprettes
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\web\xxxxxxx.dk\database\kunder-maj-2006.mdb"
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update kunder set "


strNummer=request.querystring("nummer")

strSQL = strSQL & "Framelding ='Frameld', "
strSQL = strSQL & "Dato = DateLastModified"
strSQL = strSQL & " WHERE Id = " & Session("Nummer")

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

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing


Response.redirect "tak.html"
%>



--------------

www.xxxxx.dk/framelding.asp?Nummer=&D03840


-----------

Microsoft OLE DB Provider for ODCD Drivers error '80040e174'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id='.

/framelding.asp, linie 21

------------

Er der een der kan gennemskue mit rod ?
Avatar billede keysersoze Ekspert
23. maj 2006 - 22:43 #1
din session er tom - så enten skal du lave den session et eller andet sted eller også skal du bruge querystrings hvis der skal bruges det link du har angivet;

strSQL = strSQL & " WHERE Id = '" & Request.Querystring("Nummer") & "'"
Avatar billede Keld Nielsen Professor
23. maj 2006 - 22:51 #2
Det giver mig så en ny fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.

/I2u/framelding.asp, line 21
Avatar billede keysersoze Ekspert
23. maj 2006 - 22:54 #3
kan skyldes din "DateLastModified" - er det en string eller hvad er det du forsøger at sætte ind dér?
Avatar billede Keld Nielsen Professor
23. maj 2006 - 22:56 #4
åhhhh ...forsøger at sætte en dato ind for sidte opdatering.
Avatar billede keysersoze Ekspert
23. maj 2006 - 23:11 #5
DateLastModified findes i hvert fald ikke erklæret i scriptet så lige nu er den ikke rigtig noget. Ydermere skal den nok sættes sådan ind når det er en variabel;

strSQL = strSQL & "Dato = " & DateLastModified
eller
strSQL = strSQL & "Dato = #" & DateLastModified & "#"
alt afhængig af type osv.

Men det må der næsten være et eksempel på der hvor det er copy/pastet fra?
Avatar billede Keld Nielsen Professor
24. maj 2006 - 14:19 #6
Jeg har nu rettet ASP til:
<%
' Databaseforbindelse oprettes
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\web\xxxxxxx.dk\database\kunder-maj-2006.mdb"
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update kunder set "

strSQL = strSQL & "Framelding ='Frameld', "
strSQL = strSQL & " WHERE Id = '" & Request.Querystring("Nummer") & "'"

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

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing


Response.redirect "tak.html"
%>
-------
...men får stadig denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/framelding.asp, line 15

mit email kald ser sådan her ud:
www.xxxxxx.dk/framelding.asp?Nummer=&D03840
----
Desværre er jeg ikke god til at tyde fejlmeldingerne.
Avatar billede keysersoze Ekspert
24. maj 2006 - 14:30 #7
strSQL = strSQL & "Framelding ='Frameld' "
Avatar billede Keld Nielsen Professor
24. maj 2006 - 14:36 #8
Ho Ho ....det resulterede da i en anden fejlmelding:
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1

...er vi på rette vej ?
Avatar billede keysersoze Ekspert
24. maj 2006 - 15:32 #9
prøv at udskrive sql'en i stedet for at eksekvere den

response.write strsql
response.end
Avatar billede Keld Nielsen Professor
24. maj 2006 - 15:39 #10
så fik jeg flg. meddelse på skærmen:
Update kunder set Framelding ='Frameld' WHERE Id = ''
Avatar billede keysersoze Ekspert
24. maj 2006 - 15:52 #11
det skyldes at din querystring er tom - og det er den fordi & er seperatoren mellem flere querystrings. så enten skal du urlencode din variabel før du sætter den i adresselinien eller også skal du sende den afsted uden &
Avatar billede Keld Nielsen Professor
24. maj 2006 - 16:07 #12
Det så lige så godt ud, nu kom der noget med, derefter flyttede jeg det tilbage til at eksekvere, og en ny fejl:

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id = ''D03840'''.

...sig endelig til hvis du ikke har den nødvendige tålmodighed!
Avatar billede keysersoze Ekspert
24. maj 2006 - 16:09 #13
hvordan ser din sql ud nu - og hvilken felttype er id?
Avatar billede Keld Nielsen Professor
24. maj 2006 - 16:15 #14
helt som ovenstående!
Avatar billede keysersoze Ekspert
24. maj 2006 - 16:17 #15
men hvad udskrives hvis du udskriver sql'en - og hvilken felttype er id?
Avatar billede Keld Nielsen Professor
24. maj 2006 - 16:25 #16
Svaret er sådan: Update kunder set Framelding ='Frameld' WHERE Id = ''D03840'' hvis jeg sætter write på.

og jeg sender det her: www.xxx.dk/framelding.asp?Nummer='D03840'
Avatar billede keysersoze Ekspert
24. maj 2006 - 16:29 #17
jamen - du kan jo heller ikke have 2 ' omkring din variabel. Enten skal du ikke sætte ' omkring din querystring eller også skal du ikke sætte det omkring din variabel
Avatar billede Keld Nielsen Professor
24. maj 2006 - 16:35 #18
Nu ser min linie sådan ud: www.xxx.dk/framelding.asp?Nummer=D03840
og det giver flg.: resultater:
Update kunder set Framelding ='Frameld' WHERE Id = 'D03840'
og
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/framelding.asp, line 21
Avatar billede Keld Nielsen Professor
26. maj 2006 - 08:36 #19
Jeg fandt forklaringen på fejlen via Google - og må med røde ører, meddele at det var en simpel stavefejl i databasen.
Så dine point har du slidt dig til! ...tak for hjælpen
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