Avatar billede eromaster Nybegynder
01. juni 2002 - 16:12 Der er 14 kommentarer og
1 løsning

Update af access databaser

Jeg har en access database som hedder "db.mdb" i denne database er der en tabel som hedder "bruger". I denne tabel er der en kolone der hedder "status" - her skal enten stå "Active" eller "Inactive".

Jeg har et id i min Request.Querystring("id_statusupdate") som henvender sig til en bruger i databasen! Denne kolone hedder selvfølgelig "id".

<html>
<head>
</head>
<body>

<form method=get action="member.asp???????" id=form name=form>

<SELECT id=status name=status class="textbox">
  <OPTION value="Active" selected>Active</OPTION>
  <OPTION value="Inactive">Inactive</OPTION>
</SELECT>
<br>   
<INPUT type="submit" value="Update" id=submit1 name=submit1>

</form>
</body>
</html>

Jeg skal så have lavet så den bruger som har det id i Request.Querystring("id_statusupdate") kolone "Status" bliver updated! Hvad gør man?
Avatar billede pfp Nybegynder
01. juni 2002 - 16:15 #1
Det kunne f.eks. se således ud:

<!--#include file="adovbs.inc"-->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappathdb.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

Editstatus = "SELECT * from Bruger WHERE ID=" & Request.Querystring("id_statusupdate")
RecSet.Open Editstatus, Connect, adOpenStatic, adLockOptimistic
RecSet.Update
RecSet("Status") = Request.Form("Nystatus")
RecSet.Update
Response.Redirect "Default.asp"
%>
Avatar billede pfp Nybegynder
01. juni 2002 - 16:16 #2
I linien:

RecSet("Status") = Request.Form("Nystatus")

Skal du selvfølgelig lige selv tilpasse hvorfra den nye værdi skal komme, og i hvilket felt den skal placeres.
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:17 #3
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappathdb.mdb") <- der er noget galt der?
Avatar billede erikjacobsen Ekspert
01. juni 2002 - 16:31 #4
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("db.mdb")
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:38 #5
hmm fatter ikke lige det du har lavet.. er ikke fyldstegørende nok!
Jeg har lavet en fil som hedder "member_changestatus.asp" nu som ser sådan ud:

<html>
<head></head>
<body>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db/db.mdb")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql, conn, 1, 3
%>

      <form method=post action="member_changestatus.asp" id=form name=form>
     
      <SELECT id=status name=status class="textbox">
        <OPTION value="Active" selected>Active</OPTION>
        <OPTION value="Inactive">Inactive</OPTION>
      </SELECT>
      <br> 
      <br> 
      <INPUT type="submit" value="Update" id=submit1 name=submit1>
     
      </form>



<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db/db.mdb")
sql = "SELECT * from Bruger WHERE ID=" & Request.Querystring("id_statusmember")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Connect, adOpenStatic, adLockOptimistic

    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
    rs.update
    rs("status") = Request.form("status")
    rs.update
    Response.Redirect ("member.asp")
    end if
%>

</body>
</html>

Får bare følgende fejl!
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/member_changestatus.asp, line 134
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:39 #6
ups linie 134 er denne:
rs.Open sql, Connect, adOpenStatic, adLockOptimistic
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:39 #7
argh glem det her:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db/db.mdb")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql, conn, 1, 3
%>
Avatar billede medions Nybegynder
01. juni 2002 - 16:51 #8
rs.Open sql, Connect, 1, 3

//>Rune
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:54 #9
Nu siger den:
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/member_changestatus.asp, line 85

som nu er denne linie!
rs.Open sql, Connect, 1, 3
Avatar billede eromaster Nybegynder
01. juni 2002 - 16:59 #10
Okay her er kildekoden som den ser ud nu:

<html>
<body>

<form method=post action="member_changestatus.asp" id=form name=form>
     
<SELECT id=status name=status class="textbox">
  <OPTION value="Active" selected>Active</OPTION>
  <OPTION value="Inactive">Inactive</OPTION>
</SELECT>
<br> 
<br> 
<INPUT type="submit" value="Update" id=submit1 name=submit1>
     
</form> 


<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db/db.mdb")
sql = "SELECT * from Bruger WHERE ID=" & Request.Querystring("id_statusmember")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Connect, 1, 3

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
    rs.update
    rs("status") = Request("status")
    rs.update
    Response.Redirect ("member.asp")
end if
%>

</body>
</html>

Når man trykker på linket på den forgangende side så kunne de se sådan ud:
member_changestatus.asp?id_statusupdate=3

Man får slet ikke formen at se! Den kommer bare med en fejl med det samme!
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/member_changestatus.asp, line 22

Som er denne linie:
rs.Open sql, Connect, 1, 3
Avatar billede erikjacobsen Ekspert
01. juni 2002 - 17:27 #11
rs.Open sql, Conn, 1, 3

er bestemt bedre. Du kan vel se hvorfor
Avatar billede eromaster Nybegynder
01. juni 2002 - 17:37 #12
okay nu kan jeg se formen :) men når jeg prøver at ændre status så siger den følgende:

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

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

/member_changestatus.asp, line 22
Avatar billede eromaster Nybegynder
01. juni 2002 - 17:39 #13
Så virker det!

<html>
<body>

<form method=post action="member_changestatus.asp?id_statusupdate=<%=request.querystring("id_statusupdate")%>" id=form name=form>
     
<SELECT id=status name=status class="textbox">
  <OPTION value="Active" selected>Active</OPTION>
  <OPTION value="Inactive">Inactive</OPTION>
</SELECT>
<br> 
<br> 
<INPUT type="submit" value="Update" id=submit1 name=submit1>
     
</form> 


<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("db/db.mdb")
sql = "SELECT * from Bruger WHERE ID=" & Request.Querystring("id_statusupdate")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 1, 3

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
    rs.update
    rs("status") = Request("status")
    rs.update
    Response.Redirect ("member.asp")
end if
%>

</body>
</html>

hmm hvem skal have pointne?
Avatar billede medions Nybegynder
03. juni 2002 - 12:24 #14
Afvist svar fra medions
01/06-2002 16:51:17    rs.Open sql, Connect, 1, 3

//>Rune
Avatar billede medions Nybegynder
09. juni 2002 - 12:01 #15
Thx 4 Poinz
//>Rune
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