Avatar billede kkd Nybegynder
01. april 2003 - 19:19 Der er 12 kommentarer og
1 løsning

Ændre i acces-dtb via ASP

Hej...

Jeg har vha ASP-tutorialen på html.dk prøvet at hitte ud af hvordan jeg kan ændre i en access-database.
Jeg skal, vha. en form i et html-dokument ændre værdien i access-feltet "Aktiv" fra Yes til No, samt indsætte dags dato i feltet "Dato". Men kun hvis de indtastede data i formularfelterne stemmer overens med de felter de henviser til i databasen.
Det ser sådan ud:

    <%
' 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/annoncer.mdb")
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Dato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND e-mail='" & Request.Form("Email") & "'"

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

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede tofferman Nybegynder
01. april 2003 - 19:24 #1
Hmmm... Er stien rigtig?
Avatar billede -master-d- Nybegynder
01. april 2003 - 19:26 #2
Så må du skulle lave noget lignende dette her :

<%
' 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/annoncer.mdb")
Conn.Open DSN

'Laver en søgning efter dataene i databasen
SQL = "Select * From koeb WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND e-mail='" & Request.Form("Email") & "'"
Set rs = Conn.Execute(SQL)

'Tjekker om dataene ligger i databasen
If NOT (rs.BOF OR rs.EOF) Then
' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Dato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND e-mail='" & Request.Form("Email") & "'"

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

End IF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede kkd Nybegynder
02. april 2003 - 16:42 #3
Jeg får følgende fejlmeddellelse, når jeg prøver med -master-d-'s forslag:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Kontrolnummer='654321' AND Indsenders e-mail='test@mail.dk''.

/annonce/annonce-fjernkoeb.asp, line 15

linie 15 er: Set rs = Conn.Execute(SQL) i

'Laver en søgning efter dataene i databasen
SQL = "Select * From koeb WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND e-mail='" & Request.Form("Email") & "'"
Set rs = Conn.Execute(SQL)
Avatar billede tofferman Nybegynder
03. april 2003 - 00:04 #4
Prøv lige med 'Indsenders e-mail'='test@mail.dk'

Tror at det giver problemer med feltnavne med mellemrum.
Avatar billede kkd Nybegynder
03. april 2003 - 15:39 #5
Har nu ændret det med mellemrummene.

Her er koden:
<%
' 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/annoncer.mdb")
Conn.Open DSN

'Laver en søgning efter dataene i databasen
SQL = "Select * From koeb WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"
Set rs = Conn.Execute(SQL)

'Tjekker om dataene ligger i databasen
If NOT (rs.BOF OR rs.EOF) Then
' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Inaktiveringsdato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"

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

End IF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Jeg får denne fejlmeddelelse:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

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

/annonce/annonce-fjernkoeb.asp, line 15

(linie 15 er den samme som før)
Avatar billede mm12010 Nybegynder
03. april 2003 - 15:47 #6
If NOT (rs.BOF OR rs.EOF) Then
If Request.Form("Ktrlnr") <> "" AND Request.Form("Email") <> "" Then
' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Inaktiveringsdato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"

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

End IF
End IF
Avatar billede kkd Nybegynder
03. april 2003 - 16:35 #7
mm12010>> Hvordan skal dit forslag integreres i den kode jeg har lige i øjeblikket?
Avatar billede mm12010 Nybegynder
03. april 2003 - 16:41 #8
<%
' 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/annoncer.mdb")
Conn.Open DSN

If NOT (rs.BOF OR rs.EOF) Then
If Request.Form("Ktrlnr") <> "" AND Request.Form("Email") <> "" Then
' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Inaktiveringsdato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"

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

End IF
End IF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede mm12010 Nybegynder
03. april 2003 - 16:43 #9
sorry - sådan:

<%
' 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/annoncer.mdb")
Conn.Open DSN

'Laver en søgning efter dataene i databasen
SQL = "Select * From koeb WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"
Set rs = Conn.Execute(SQL)

If NOT (rs.BOF OR rs.EOF) Then
If Request.Form("Ktrlnr") <> "" AND Request.Form("Email") <> "" Then
' SQL sætning opbygges
strSQL = "Update koeb set "
strSQL = strSQL & "Aktiv= 'No', "
strSQL = strSQL & "Inaktiveringsdato= '" & Date & " ,"
strSQL = strSQL & "WHERE Kontrolnummer='" & Request.Form("Ktrlnr") & "' AND Indsender-email='" & Request.Form("Email") & "'"

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

End IF
End IF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede kkd Nybegynder
03. april 2003 - 16:45 #10
Nu kommer der en fejlmeddelelse:
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/annonce/annonce-fjernkoeb.asp, line 13

linie 13: If NOT (rs.BOF OR rs.EOF) Then
Avatar billede kkd Nybegynder
03. april 2003 - 16:48 #11
Se bort fra ovenstående...

Med dit sidste forslag siger den:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

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

/annonce/annonce-fjernkoeb.asp, line 15

Linie 15: Set rs = Conn.Execute(SQL)
Avatar billede tofferman Nybegynder
10. april 2003 - 00:18 #12
Hmm. Det ser ikke ud til at der er nogen der har en løsning :-/
Avatar billede kkd Nybegynder
20. april 2003 - 20:20 #13
Nej, det ser ikke sådan ud. Derfor lukker jeg spørgsmålet, og så må jeg se om jeg kan finde svaret andetsteds!
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