annasmurfMedlem sedan mars 2006237 inlägg
Hej!
Min kod ser ut så här:
<%
usernamn = Request.Form("namn")
accept = Request.Form("resevilkor")
dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=test.mdb;"
Set conn = CreateObject("ADODB.Connection")
conn.Open dsn
SQL = "INSERT INTO testorder(Bekräftad av kund) VALUES('" & Request.Form("resevilkor") & "')WHERE Er referens=('"&usernamn&"')"
set rs=conn.execute(SQL)
Set rs = nothing
Set conn = nothing
%>
och då får jag följande felmedelande
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x7bc Thread 0xa50 DBC 0x992ab7c Jet'.
/anna/acceptskicka.asp, line 16
är det någon som vill hjälpa mig, vore jag mycket tacksam!!!!
@ndersMedlem sedan juni 200026 914 inlägg
Sökvägen till databasen är felaktig. Du måste ange en komplett sökväg. Vet du inte den kompletta sökvägen kan du använda Server.Mappath (vilket visserligen är att rekommendera i alla fall).
dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=[b]" & Server.Mappath("test.mdb") & "[/b];"
Ovanstående bör stämma under förutsättning att databasen ligger i samma mapp som asp-filen koden ligger i.
annasmurfMedlem sedan mars 2006237 inlägg
om databasen ej ligger i samma mapp, ska man då skriva
& Server.Mappath("G:\test.mdb") & ";"
@ndersMedlem sedan juni 200026 914 inlägg
Nej, server.mappath ska du bara använda om du inte ger komplett sökväg själv. Om du ska ange G:\test.mdb, då gör du bara det enligt ditt första kodförslag.
Kom dock ihåg att om G:\ är en nätverksenhet, så måste du se till att IUSR_xxx vet om det. Eventuellt får du istället ange \\servernamn\share$\test.mdb. Sök lite här i asp-forumet om det är en nätverksdrive, det har diskuterats förut.
LarsGMedlem sedan dec. 200012 465 inlägg
SQL = "INSERT INTO testorder(Bekräftad av kund) VALUES('" & Request.Form("resevilkor") & "')WHERE Er referens=('"&usernamn&"')"
Den SQL-frågan kommer aldrig att fungera. Du vill nog göra update. Om du har blank med i kolumnnamn så måste namnet anges inom []
annasmurfMedlem sedan mars 2006237 inlägg
tack men nu säger den att det är något fel
på
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/anna/acceptskicka.asp, line 18
kan någon se varför?
annasmurfMedlem sedan mars 2006237 inlägg
bwcMikkeMedlem sedan okt. 2004166 inlägg
Så här menar (nog) LarsG
SQL = "INSERT INTO testorder([Bekräftad av kund]) VALUES('" & Request.Form("resevilkor") & "')WHERE [Er referens]=('"&usernamn&"')"
Generellt kan jag väl tycka att man skall undvika mellanslag i kolumnnamn.
Jag skulle nog kallat dessa för "KundOK" eller "Kund_OK" respektive "ErRef"
LarsGMedlem sedan dec. 200012 465 inlägg
Dels det och dels att du skall byta din insert mot en update.
annasmurfMedlem sedan mars 2006237 inlägg
ändrar jag kdoen till så här:
usernamn = Request.Form("namn")
accept = Request.Form("resevilkor")
dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("test.mdb") & ";"
Set conn = CreateObject("ADODB.Connection")
conn.Open dsn
SQL = "UPDATE INTO testorder([Bekräftad av kund]) VALUES('" & Request.Form("resevilkor") & "')WHERE [Er referens]=('"&usernamn&"')"
set rs=conn.execute(SQL)
Set rs = nothing
Set conn = nothing
säger den
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/anna/acceptskicka.asp, line 18
@ndersMedlem sedan juni 200026 914 inlägg
Det är olika syntax för UPDATE och INSERT, så det är inte bara att byta ett nyckelord mot ett annat. Kika i SQL-forumet så finner du mängder med exempel.
annasmurfMedlem sedan mars 2006237 inlägg
annasmurfMedlem sedan mars 2006237 inlägg
hej igen!
jag hittade inga vettiga svar om nätverksdrive, så hur ska jag göra någon som vet. min accessdatabas liger på G:\Ekonomi\test.mdb.. tror jag måste kontakt de som har hand om it-driften för att få reda på rätt "sökväg" eller?