webForumDet fria alternativet

problem accessdatabaskoppling

12 svar · 457 visningar · startad av annasmurf

annasmurfMedlem sedan mars 2006237 inlägg
#1

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
#2

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
#3

om databasen ej ligger i samma mapp, ska man då skriva
& Server.Mappath("G:\test.mdb") & ";"

@ndersMedlem sedan juni 200026 914 inlägg
#4

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
#5
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
#6

tack men nu säger den att det är något fel

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
#7

hur menar du LarsG?

bwcMikkeMedlem sedan okt. 2004166 inlägg
#8

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
#9

Dels det och dels att du skall byta din insert mot en update.

annasmurfMedlem sedan mars 2006237 inlägg
#10

ä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
#11

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
#12

tack för hjälpen

annasmurfMedlem sedan mars 2006237 inlägg
#13

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?

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb