Avatar billede jr40 Nybegynder
01. februar 2005 - 19:32 Der er 65 kommentarer og
1 løsning

fra .addnew til alm. add til database

Hey guys..

Jeg har et alm. skrive til database system og vis på en anden side,, men mit script skal kodes om,, så det ikke er .addnew men derimod kun er et felt i min database,, og ikke kommer et nyt helt tiden med ".addnew" 
(Håber i forstår mig).

skriv til db siden:

<%
mode=request("menu")
if mode="add" then
%>
<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("top") = Request.form("top")
      rs("bund") = Request.form("bund")
      rs("kl") = time()
      rs("dato") = date()
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing

response.redirect ("index.asp")

%>


<%
elseif mode="tilfoj" then
%>




vis siden:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

SQLstmt = "SELECT * FROM video"

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)


%>


Håber det er nok info,, og i er søde at hjælpe mig, da jeg skal bruge det iaften.
Avatar billede eagleeye Praktikant
01. februar 2005 - 19:39 #1
Hvis du vil opdatere posten og ikke tilføje den igen fjerner du bare .addnew:


      rs("top") = Request.form("top")
      rs("bund") = Request.form("bund")
      rs("kl") = time()
      rs("dato") = date()
      rs.Update


Så skal du havde rette din SQL sætning så den kun henter den post som skal opdateres og ikke alle poster som den har nu:
    strSQL = "Select * From video"

Så den kommer til at se eksempelvis sådan her ud:
    strSQL = "Select * From video where id = " & request("id")

Typsik har man en autonummer kolonne som hedder ID som man kan bruge til at vælge den post som skal opdateres. ID skal så overføres via form'en hvor du retter i data.
Avatar billede jr40 Nybegynder
01. februar 2005 - 19:58 #2
okey,, jeg har rettet det til.. men kommer iligevel med den her fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e0c'

Command text was not set for the command object.

/system/index.asp, line 8



index.asp ser sådan her ud nu:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxxd.mdb")

strSQL = "Select * From video where id = " & request("id")

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)


%>
Avatar billede eagleeye Praktikant
01. februar 2005 - 20:00 #3
Du executer SQLstmt og ikke strSQL så prøv at rette koden til:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxxd.mdb")

strSQL = "Select * From video where id = " & request("id")

Set rs = conn.Execute(strSQL)


%>




Men det rigtigt forstået du ville opdatere en post og ikke tilføje en ny?
Avatar billede jr40 Nybegynder
01. februar 2005 - 20:06 #4
ja den skal bare kunne opdatere..

(har nemlig en side hvor der er 5steder på den, hvor det skal være muligt at kunne rette i teksten).



nu skriver den:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/system/index.asp, line 8


skal jeg skrive noget i ID eller har jeg misforstået noget?
Avatar billede eagleeye Praktikant
01. februar 2005 - 20:10 #5
Når du så retter i de data der skal opdateres henter du dem ud fra databasen, det er samme ID som du skal bruge når du skal opdatere posten. Typsik har man en form hvor man kan rette i forskellige felter og så laver man et hidden felt som indeholder ID'et på den post man retter i så siden som gemmer også modtager id'et:

<input type="hidden" name="id" value="<%request("id")%>">
Avatar billede jr40 Nybegynder
01. februar 2005 - 20:13 #6
ahh yes den er jeg med på, men tænkte på hvordan man for det vist på en side?

lige pt har jeg <%=rs("top")%> på index.asp
men den lader mig ikke komme ind på siden, da den skriver fejl i linje 8. Set rs = conn.Execute(strSQL)
Avatar billede eagleeye Praktikant
01. februar 2005 - 20:17 #7
Ok det skal nok pakkes ind i en if sætningen så den kun køre koden hvis en querystring er sat:

if mode="opdater" then

  ' koden som opdater en post

end if
Avatar billede jr40 Nybegynder
01. februar 2005 - 20:19 #8
du må lige fortælle mig hvor i mit script det skal sættes ind,, da jeg er ny til dette her.
Avatar billede eagleeye Praktikant
01. februar 2005 - 20:22 #9
ok med udgangs punkt i koden fra spørgsmålet så det noget i stil med sådan her:


<%
mode=request("menu")
if mode="add" then
%>
<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("top") = Request.form("top")
      rs("bund") = Request.form("bund")
      rs("kl") = time()
      rs("dato") = date()
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing

response.redirect ("index.asp")



elseif mode="opdater" then

  Const adOpenKeyset = 1
  Const adLockOptimistic = 3

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video where id =" & request("id")
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

    rs("top") = Request.form("top")
    rs("bund") = Request.form("bund")
    rs("kl") = time()
    rs("dato") = date()
    rs.Update

    rs.Close
    Set rs = Nothing

  Conn.Close
  set Conn = Nothing

  response.redirect ("index.asp")



elseif mode="tilfoj" then
%>
Avatar billede jr40 Nybegynder
02. februar 2005 - 07:20 #10
du kan se det her:
http://www.macpack.dk/system/index-admin.asp?menu=tilfoj
og
http://www.macpack.dk/system/index.asp


Index-admin.asp

<%
mode=request("menu")
if mode="add" then
%>
<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("top") = Request.form("top")
      rs("bund") = Request.form("bund")
      rs("kl") = time()
      rs("dato") = date()
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing

response.redirect ("index.asp")



elseif mode="opdater" then

  Const adOpenKeyset = 1
  Const adLockOptimistic = 3

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video where id =" & request("id")
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

    rs("top") = Request.form("top")
    rs("bund") = Request.form("bund")
    rs("kl") = time()
    rs("dato") = date()
    rs.Update

    rs.Close
    Set rs = Nothing

  Conn.Close
  set Conn = Nothing

  response.redirect ("index.asp")



elseif mode="tilfoj" then
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Index Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>                <form method="POST" action="index-admin.asp?menu=add">

                <table class=alm_text cellspacing=0 cellpadding=0 width="38%" border=0>
                  <tbody>
                    <tr>
                      <td><textarea name=forsidetop cols=25 rows=5 id="forsidetop" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">Forsidetop
</textarea>
                      </td>
                    </tr>
                    <tr>
                      <td height=2>
                        <div align=center>
                          <textarea name=forsidebund cols=25 rows=5 id="forsidebund" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">forsidebund
                          </textarea>
                          <br>
                          <input type="submit" value="Send" name="B12">
                        </div>
                        <%
else
response.write "Du kom vidst ud på et sidespor ;-)"
end if
%>
                      </td>
                    </tr>
                  </tbody>
              </table></form>

</body>
</html>
  <%
conn.Close
Set conn = nothing
  %>






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


Index.asp

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

strSQL = "Select * From video where id = " & request("id")

Set rs = conn.Execute(strSQL)


%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<br>
<%=rs("top")%>
<br>
<br>
<%=rs("bund")%>
</body>
</html>
  <%
conn.Close
Set conn = nothing
Set SQLstmt = nothing
  %>


jeg har lagt filerne her i en zip fil incl. databasen, hvis du vil være sød at se hvor fejlen er:
http://www.macpack.dk/system/skriv.til.db.system.zip

Den skal bare kunne gemme top & bund i dben,, også bare vises via .rs på index.asp
Avatar billede jr40 Nybegynder
02. februar 2005 - 18:09 #11
eagleeye>>>Noget du har tid til at se på iaften mester.?
Avatar billede eagleeye Praktikant
02. februar 2005 - 20:35 #12
Hvad skal index.asp gøre?

Du skal havde en form hvor man kan rette data i stil med den som er i "tilfoj". Man kan havde en liste over alle poster og når man trykke på et link åbner den form'en hvor man kan rette posten, er det sådan noget du søger?

Det muligt jeg har misforstået spørgsmålet, prøv at forklare hvad du ønsker.
Avatar billede jr40 Nybegynder
02. februar 2005 - 20:53 #13
se her:
www.macpack.dk/her.eagle.zip

Det jeg mangler din hjælp til,, er at rette min kode til så den virker.

Det jeg skal bruge koden til, er at "top", er et sted på min index.asp side, hvor der skal vises tekst og det samme med "bund", dog skal den vises lidt længere nede på siden.. Men summasumarum, er at man skal kunne se top og bund via dben på index.asp, også skal man kunne rediger i det.
Avatar billede eagleeye Praktikant
02. februar 2005 - 21:01 #14
ok, så skal index.asp rette til dette, her er top og bund lagt ind i to textarea's og så skal sidn havde overført et id:    index.asp?id=43


<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

strSQL = "Select * From video where id = " & request("id")

Set rs = conn.Execute(strSQL)


%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<br>
<% if rs.EOF then %>
  Der blev ikke fundet en post
<% else %>
<form action="index-admin.asp?mode=opdater" method="post">
<input type="hidden" name="id" value="<%=rs("id")%>">
<textarea name="top"><%=rs("top")%></textarea>
<br>
<br>
<textarea name="bund"><%=rs("bund")%></textarea>
<br>
<input type="submit" name="gem" value="gem">
</form>
<% end if %>
</body>
</html>
  <%
conn.Close
Set conn = nothing
%>
Avatar billede jr40 Nybegynder
02. februar 2005 - 21:08 #15
Du må undskylde hvis jeg er besværlig,, men fandme glad for du hjælper...

se:
http://macpack.dk/system/index.asp

den skriver fejl:
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 0x5dc Thread 0x6c0 DBC 0x23da014 Jet'.

/system/index.asp, line 4


linje4=Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")
Avatar billede eagleeye Praktikant
02. februar 2005 - 21:18 #16
Ok det fordi den ikke kan finde filen  xxx.mdb i den angivne folder.
Så skrive det rigtige filnavn på database filen og tjek stien ../.. er rigtigt i forhold til hvor .asp filen ligger.

Det kan nogle gange være en fordel at angive stien fra root så man ikke går forkert med ../..:
server.MapPath("/folder1/folder2/db/xxx.mdb")
Avatar billede jr40 Nybegynder
02. februar 2005 - 21:21 #17
Rigtigt min fejl!

Nu skriver den bare det der:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/system/index.asp, line 8
Avatar billede eagleeye Praktikant
02. februar 2005 - 21:27 #18
Så det fordi der ikke er et id i linket:  index.asp?id=XXX

Eller så skal koden laves lidt om sådan her, så skulle fejlen ikke komme hvis id'et magler. Så prøv dette kode og husk at rette det med stien til database :)



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<br>
<%
if  request("id") = "" then
%>
      Der mangler et id.

<% else
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

  strSQL = "Select * From video where id = " & request("id")

  Set rs = conn.Execute(strSQL)

  if rs.EOF then
%>   
  Posten kunne ikke findes.
 
  <% else %>
<form action="index-admin.asp?mode=opdater" method="post">
<input type="hidden" name="id" value="<%=rs("id")%>">
<textarea name="top"><%=rs("top")%></textarea>
<br>
<br>
<textarea name="bund"><%=rs("bund")%></textarea>
<br>
<input type="submit" name="gem" value="gem">
</form>
  <% end if %>
<% end if %>
</body>
</html>
  <%
conn.Close
Set conn = nothing
%>
Avatar billede jr40 Nybegynder
02. februar 2005 - 21:37 #19
http://macpack.dk/system/index.asp?=1
godt være det lyder lidt dumt,, men hvor finder jeg det id jeg skal bruge?
"top" står øverst i databasen, så det er id 1?

jeg har ihvertfald prøvet med id?=1 men så skriver den:



Der mangler et id.
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/system/index.asp, line 43
Avatar billede eagleeye Praktikant
02. februar 2005 - 21:40 #20
Sådan her:
http://macpack.dk/system/index.asp?id=1

Ja ok de sidste linier er kommet for langt ned:
  <%
conn.Close
Set conn = nothing
%>

Så prøv at slette dem eller flytte dem så det blvier:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<br>
<%
if  request("id") = "" then
%>
      Der mangler et id.

<% else
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

  strSQL = "Select * From video where id = " & request("id")

  Set rs = conn.Execute(strSQL)

  if rs.EOF then
%>   
  Posten kunne ikke findes.
 
  <% else %>
<form action="index-admin.asp?mode=opdater" method="post">
<input type="hidden" name="id" value="<%=rs("id")%>">
<textarea name="top"><%=rs("top")%></textarea>
<br>
<br>
<textarea name="bund"><%=rs("bund")%></textarea>
<br>
<input type="submit" name="gem" value="gem">
</form>
  <% end if
  conn.Close
  Set conn = nothing
%>
<% end if %>
</body>
</html>
Avatar billede jr40 Nybegynder
02. februar 2005 - 21:54 #21
Hmm lige gyldig hvor jeg rykker  <%
conn.Close
Set conn = nothing
%>
hen, så skriver den hele tiden fejl i: conn.Close
Avatar billede eagleeye Praktikant
02. februar 2005 - 21:56 #22
Så prøv at fjene de to linier i første omgang.
Avatar billede jr40 Nybegynder
02. februar 2005 - 21:58 #23
Okey nice, så langt så godt. ;o)

http://macpack.dk/system/index.asp?=1

Nu skal jeg bare finde ud af hvilke id jeg skal bruge.?
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:02 #24
Ja man kan evt. lave noget kode som lister alle posterne og et link til index.asp hvor man kan rette posten..


Eksvis i stedet for den skriver "Der mangler et id. " kunne den liste alle posterne i tabellen og lave det som et linkt til side:

eks:

<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

  strSQL = "Select * From video"

  Set rs = conn.Execute(strSQL)
  do while not rs.EOF
    response.write "<a href=""index.asp?id=" & rs("id") & """>Ret post med id : " & rs("id") & "<a>  <br>"
    rs.Movenext
  loop
%>
Avatar billede jr40 Nybegynder
02. februar 2005 - 22:14 #25
fandme nice eagle! et par sidste ting:

http://macpack.dk/system/index.asp

den skriver det som link,,, kan du ikke gøre, så det er ren tekst og ikke link.?

ang. index-admin.asp
http://www.macpack.dk/system/index-admin.asp?menu=tilfoj

der skriver den:
Microsoft VBScript compilation error '800a0411'

Name redefined

/system/index-admin.asp, line 35

Const adOpenKeyset = 1

skal jeg slette Const adOpenKeyset = 1 ???

for at være helt ærlig, så ved jeg ikke hvad Const adOpenKeyset = 1 gør/betyder.
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:25 #26
Det ser ud som om id kolonnen ikke er at tal men en tekst kolonne er det rigtigt?

Const definere en konstant (variable man ikke kan rette i) til det man skriver, så:
Const adOpenKeyset = 1
Giver en konstant som hedder adOpenKeyset og compileren finder så væriden og sætter tallet ind i stedet for. Det er til programmøren så man ikke behover et tons variable og samtidig kan skriver tal som noget læseligt.

A = 20  vs.  A = ANTAL_HUSE_PAA_VEJEN

Fordelen er at man kan bruge konstanten flere gange og kun rette et sted i koden hvis tallet skulle ændre sig :)
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:26 #27
Ja det skal kun stå en gang så bare slet de to liner hvor fejlen kommer.
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:34 #28
Hvis id er tekst så prøv at rette SQL sætningen fra:

  strSQL = "Select * From video where id = " & request("id")

Til dette så der er ' omkring:

  strSQL = "Select * From video where id = '" & request("id") & "'"


Det gælder så i begge filer.
Avatar billede jr40 Nybegynder
02. februar 2005 - 22:34 #29
ja datatypen i xxx.mdb er tekst... skal jeg da ændre det til tal?
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:37 #30
Nej ikke umidddelbart.

men typsik har man en autonummer kolonne som er et tal. Databasen giver så hver post et unik ID og det bruger man til at hente og opater posten.
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:37 #31
Så har du en autonummer kolonne?  Hvis du har kan du skifte kolonnenavnet id ud med nanvet på kolonnen. Du kan tilføje en autonummer kolonne hvis du ikke har en.
Avatar billede jr40 Nybegynder
02. februar 2005 - 22:40 #32
syntes ikke den fjernede linket:
http://www.macpack.dk/system/index.asp
index.asp



Så prøv at slette dem eller flytte dem så det blvier:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<br>
<%
if  request("id") = "" then
%>
<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")

  strSQL = "Select * From video"

  Set rs = conn.Execute(strSQL)
  do while not rs.EOF
    response.write "<a href=""index.asp?id=" & rs("top") & """>Ret post med id : " & rs("bund") & "<a>  <br>"
    rs.Movenext
  loop
%>

<% else
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/xxx.mdb")
  strSQL = "Select * From video where id = '" & request("id") & "'"


  Set rs = conn.Execute(strSQL)

  if rs.EOF then
%>   
  Posten kunne ikke findes.
 
  <% else %>
<form action="index-admin.asp?mode=opdater" method="post">
<input type="hidden" name="id" value="<%=rs("id")%>">
<textarea name="top"><%=rs("top")%></textarea>
<br>
<br>
<textarea name="bund"><%=rs("bund")%></textarea>
<br>
<input type="submit" name="gem" value="gem">
</form>
  <% end if
  conn.Close
  Set conn = nothing
%>
<% end if %>
</body>
</html>´


http://www.macpack.dk/system/index-admin.asp?menu=tilfoj
index-admin.asp

<%
mode=request("menu")
if mode="add" then
%>
<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("top") = Request.form("top")
      rs("bund") = Request.form("bund")
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing

response.redirect ("index.asp")



elseif mode="opdater" then



  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/xxx.mdb") & ";UID=admin;PWD=;"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From video where id = '" & request("id") & "'"

    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

    rs("top") = Request.form("top")
    rs("bund") = Request.form("bund")
    rs("kl") = time()
    rs("dato") = date()
    rs.Update

    rs.Close
    Set rs = Nothing

  Conn.Close
  set Conn = Nothing

  response.redirect ("index.asp")



elseif mode="tilfoj" then
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Index Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>                <form method="POST" action="index-admin.asp?menu=add">

                <table class=alm_text cellspacing=0 cellpadding=0 width="38%" border=0>
                  <tbody>
                    <tr>
                      <td><textarea name=forsidetop cols=25 rows=5 id="forsidetop" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">Forsidetop
</textarea>
                      </td>
                    </tr>
                    <tr>
                      <td height=2>
                        <div align=center>
                          <textarea name=forsidebund cols=25 rows=5 id="forsidebund" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">forsidebund
                          </textarea>
                          <br>
                          <input type="submit" value="Send" name="B12">
                        </div>
                        <%
else
response.write "Du kom vidst ud på et sidespor ;-)"
end if
%>
                      </td>
                    </tr>
                  </tbody>
              </table></form>

</body>
</html>
  <%
conn.Close
Set conn = nothing
  %>
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:43 #33
Den kommer med denne fejl:

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

Du overføre rs("top") via linket så prøv at rette SQL sætningen fra:

  strSQL = "Select * From video where id = '" & request("id") & "'"

til dette:

  strSQL = "Select * From video where top = '" & request("id") & "'"
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:45 #34
i index-admin.asp prøv at slette de to linjer:

  conn.Close
  Set conn = nothing
Avatar billede jr40 Nybegynder
02. februar 2005 - 22:48 #35
den tilføjet bare lidt flere "tomme" Ret post med id :
på index.asp siden
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:51 #36
Det tyder på du har nogle tomme poster i databasen, du kan evt prøve at slette dem?

I index.asp koden skal denne linie:
<input type="hidden" name="id" value="<%=rs("id")%>">

Rettes så den overføre top, men stadig hedder id.:
<input type="hidden" name="id" value="<%=rs("top")%>">
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:52 #37
I index-admin.asp inde i elseif mode="opdater" then

rettes:
strSQL = "Select * From video where id = '" & request("id") & "'"

Til dette:
strSQL = "Select * From video where top = '" & request("id") & "'"
Avatar billede jr40 Nybegynder
02. februar 2005 - 22:56 #38
yes det hjalp med at slette dem..
Der står nu tester og hej, men når du føre musen hen over f.eks. tester, så viser infoen fra "top" feltet fra dben i status linjen..

Men den skulle derimod vise det istedetfor tester
Avatar billede eagleeye Praktikant
02. februar 2005 - 23:00 #39
Ja det pga. denne linie som udskriver linket, det som overføres som ID'et kommer fra top kolonnen og det som står som linket kommer fra bund kolonnen:

    response.write "<a href=""index.asp?id=" & rs("top") & """>Ret post med id : " & rs("bund") & "<a>  <br>"


Skal det være top eller bund som overføres?

Du kan rette så det er bund begge steder:
    response.write "<a href=""index.asp?id=" & rs("bund") & """>Ret post med id : " & rs("bund") & "<a>  <br>"

men husk på at så skal du rette i de to SQL sætninger så de henter fra bund kolonnen og ikke top kolonne samt hidden feltet så den indsætter fra bun kolonnen.
Avatar billede eagleeye Praktikant
02. februar 2005 - 23:03 #40
Jeg smutter for i aften..
Avatar billede jr40 Nybegynder
02. februar 2005 - 23:13 #41
okey tror også jeg stopper for iaften...
Avatar billede jr40 Nybegynder
05. februar 2005 - 10:36 #42
eagleeye  jeg fandt dette her script, som tror passer bedre ind i lige det jeg skal bruge:

se:
http://www.macpack.dk/cms/skriv.asp

skriv.asp ser sådan her ud:

<%

mode = request("mode")
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
indhold = rs("top")
titel = rs("bund")
rs.movenext
wend

if mode = "" then

rs.close
set rs = nothing
conn.close
set conn = nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Skriv til vis.asp</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name='FormName' action='skriv.asp?mode=update' method='post'>
Top<br>
<textarea name="top" cols="20" rows="7" id="top" ><% =top %>
</textarea>
<br>
Bund<br>
  <textarea name="bund" cols="20" rows="7" id="bund" ><% =bund %>
  </textarea>
  <br>
  <input type="submit" name="submitButtonName">
</form>
<br>
<a href="vis.asp">Klik her for at se vis.asp
</a>
</body>
</html>
<%
else
indhold2 = Trim(Replace(request.form("indhold1"),"'","`" ))
indhold2 = replace(indhold2, vbCrLF, "<br>")
SQL2 = "update indhold set indhold ='" & indhold2 & "' where side = 1;"
rs = Conn.Execute(SQL2)
response.redirect("vis.asp")

end if
%>



vis.asp her:

<%
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
indhold = rs("top")
titel = rs("bund")
rs.movenext
wend
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Vis side</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>
  <% response.write top %>
  <br>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="skriv.asp">tilbage til skriv.asp </a></p>
</body>
</html>
<%
rs.close
set rs = nothing
conn.close
set conn = nothing
%>


Med det script skal man kunne se og redigere top og bund, så det vises på vis.asp via rs.

Gider du evt. se hvad fejlen/e er i det script,, siden den skriver fejl når man klikker på send på skriv.asp,, også vises der ikke noget på vis.asp
Avatar billede jr40 Nybegynder
05. februar 2005 - 10:37 #43
du kan hente både skriv.asp & vis.asp & databasen her:
http://www.macpack.dk/cms/nytcms.zip
Avatar billede eagleeye Praktikant
05. februar 2005 - 10:42 #44
Har du kun en post i databasen eller er der mange poster. Som koden er lave lige nu viser den kun den sidste post.
Avatar billede eagleeye Praktikant
05. februar 2005 - 10:47 #45
Prøv at rette skriv.asp til dette:


<%

mode = request("mode")
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
indhold = rs("top")
titel = rs("bund")
rs.movenext
wend

if mode = "" then

rs.close
set rs = nothing
conn.close
set conn = nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Skriv til vis.asp</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name='FormName' action='skriv.asp?mode=update' method='post'>
Top<br>
<textarea name="top" cols="20" rows="7" id="top" ><% =top %>
</textarea>
<br>
Bund<br>
  <textarea name="bund" cols="20" rows="7" id="bund" ><% =bund %>
  </textarea>
  <br>
  <input type="submit" name="submitButtonName">
</form>
<br>
<a href="vis.asp">Klik her for at se vis.asp
</a>
</body>
</html>
<%
elseif mode="update" then
top = Trim(Replace(request.form("top"),"'","`" ))
top = replace(top, vbCrLF, "<br>")
bund = Trim(Replace(request.form("bund"),"'","`" ))
bund = replace(bund, vbCrLF, "<br>")
SQL2 = "update indhold set [top] ='" & top & "', bund='" & bund & "' where side = 1;"
rs = Conn.Execute(SQL2)
response.redirect("vis.asp")

end if
%>
Avatar billede jr40 Nybegynder
05. februar 2005 - 10:49 #46
har oprette et nyt spam:
http://eksperten.dk/spm/588186
da det her sidste script ikke indgik i mit spørgsmål... men du er velkommen til at svare/hjælpe,,, også for du self begge points
Avatar billede eagleeye Praktikant
05. februar 2005 - 10:49 #47
Prøv at rette vis.asp til dette der er fejl i et variable navn samt den ikke udskrev bund:


<%
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
top = rs("top")
bund = rs("bund")
rs.movenext
wend
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Vis side</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>
  <% response.write top %>
  <br>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
  <% response.write bund %>
  <br>
</p>
<p><a href="skriv.asp">tilbage til skriv.asp </a></p>
</body>
</html>
<%
rs.close
set rs = nothing
conn.close
set conn = nothing
%>
Avatar billede jr40 Nybegynder
05. februar 2005 - 10:53 #48
yes den virker nu..
men på skriv.asp

kan du få den til at vises i felterne, hvad der er står i dben,, så man kan "rette" også.
Avatar billede eagleeye Praktikant
05. februar 2005 - 10:55 #49
Ok i skriv.asp er det det samme der er to variablenavne som ikke passer prøv at rette:

while not rs.eof
indhold = rs("top")
titel = rs("bund")
rs.movenext
wend


Til dettte:


while not rs.eof
top = rs("top")
bund = rs("bund")
rs.movenext
wend
Avatar billede jr40 Nybegynder
05. februar 2005 - 10:58 #50
så virker det for satan da... ;o)

Kan du gøre sådan, så <br> på skriv.asp siden ikke bliver vist, men at der bare er alm. mellemrum. ???


"Nu er det bare at adde flere felter uden problemner ikke?"
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:01 #51
Ja hvis du ikke vil havdee <br> så kan de rette til vbCrLf for det linje skift som det jo er.:

Ret denne:
<textarea name="top" cols="20" rows="7" id="top" ><% =top %>
</textarea>

Til dettte:

<textarea name="top" cols="20" rows="7" id="top" ><% =replace(top,"<br>",vbCrLf,1,-1,1) %>


Samt ret denne:
  <textarea name="bund" cols="20" rows="7" id="bund" ><% =bund %>
  </textarea>

Til dette:
  <textarea name="bund" cols="20" rows="7" id="bund" ><% =replace(bund,"<br>",vbCrLf,1,-1,1) %>
  </textarea>
</textarea>
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:01 #52
"Nu er det bare at adde flere felter uden problemner ikke?"

Hvordan mener du lige nu er koden "hard-coded" til kun at tage den post som har side=1
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:03 #53
Hvis du vil kunne rette flere forskellgie poster så skal det lave hvor du overføre nummeret på side du vil vise og den side du vil rette, som det det andet kode.
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:08 #54
Men vil du havde flere kolonner på, ja så det bare at adde flere felter.
Avatar billede jr40 Nybegynder
05. februar 2005 - 11:16 #55
Ja,, nu har jeg f.eks. added en ny som hedder: midt i databasen og koderne ser sådan her ud:

skriv.asp:

<%

mode = request("mode")
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
top = rs("top")
bund = rs("bund")
bund = rs("midt")
rs.movenext
wend

if mode = "" then

rs.close
set rs = nothing
conn.close
set conn = nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Skriv til vis.asp</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name='FormName' action='skriv.asp?mode=update' method='post'>
Top<br>
<textarea name="top" cols="20" rows="7" id="top" ><% =replace(top,"<br>",vbCrLf,1,-1,1) %>
</textarea>
<br>
midt<br>
  <textarea name="midt" cols="20" rows="7" id="midt" ><% =replace(bund,"<br>",vbCrLf,1,-1,1) %>
  </textarea>
  <br>
  <br>
Bund<br>
  <textarea name="bund" cols="20" rows="7" id="bund" ><% =replace(bund,"<br>",vbCrLf,1,-1,1) %>
  </textarea>

  <br>
  <input type="submit" name="submitButtonName">
</form>
<br>
<a href="vis.asp">Klik her for at se vis.asp
</a>
</body>
</html>
<%
elseif mode="update" then
top = Trim(Replace(request.form("top"),"'","`" ))
top = replace(top, vbCrLF, "<br>")
bund = Trim(Replace(request.form("bund"),"'","`" ))
bund = replace(bund, vbCrLF, "<br>")
midt = Trim(Replace(request.form("midt"),"'","`" ))
midt = replace(midt, vbCrLF, "<br>")
SQL2 = "update indhold set [top] ='" & top & "', bund='" & bund & "' , midt='" & midt & "' where side = 1;"
rs = Conn.Execute(SQL2)
response.redirect("vis.asp")

end if
%>


vis.asp:

<%
dim conn, strconnect, sql, rs, top, bund
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/cms.mdb")

set rs = server.createobject("ADODB.Recordset")
sql = "select * from indhold where side=1;"

rs.open sql, conn

while not rs.eof
top = rs("top")
bund = rs("bund")
bund = rs("midt")
rs.movenext
wend
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Vis side</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>
  <% response.write top %>
  <br>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
  <% response.write bund %>
  <br>
</p>
<p>
  <% response.write midt %>
  <br>
</p>
<p><a href="skriv.asp">tilbage til skriv.asp </a></p>
</body>
</html>
<%
rs.close
set rs = nothing
conn.close
set conn = nothing
%>



Hvad har jeg gjordt galt siden det ikke helt virker.?

http://www.macpack.dk/cms/skriv.asp
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:18 #56
Ja det er fordi du får lagt midt ind i bund variablen her:

while not rs.eof
top = rs("top")
bund = rs("bund")
bund = rs("midt")
rs.movenext
wend

Prøv at rette det så midt får sin egen variable:

while not rs.eof
top = rs("top")
bund = rs("bund")
midt = rs("midt")
rs.movenext
wend


Samt rette denne:

  <textarea name="midt" cols="20" rows="7" id="midt" ><% =replace(bund,"<br>",vbCrLf,1,-1,1) %>
  </textarea>

Så den tager teksten fra midt variablen:
  <textarea name="midt" cols="20" rows="7" id="midt" ><% =replace(midt,"<br>",vbCrLf,1,-1,1) %>
  </textarea>
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:19 #57
På  vis.asp  gælder det samme med variablen du henter fra recordsetet:

while not rs.eof
top = rs("top")
bund = rs("bund")
bund = rs("midt")
rs.movenext
wend

Det skal også være sådan her:

while not rs.eof
top = rs("top")
bund = rs("bund")
midt = rs("midt")
rs.movenext
wend
Avatar billede jr40 Nybegynder
05. februar 2005 - 11:22 #58
yes nu er jeg med,  så er det ikke det store problem, at oprette flere...
Avatar billede jr40 Nybegynder
05. februar 2005 - 11:44 #59
Jeg takker for din hjælp eableeye.

eagleeye>>>Du kunne tilfældigvis ikke være interesseret i nogle freelance opgaver mv.?
kontakt: info@macpack.dk (eller skriv på msn).
Avatar billede eagleeye Praktikant
05. februar 2005 - 11:53 #60
Tak for point.

Nej tak, ikke lige i øjeblikket.
Avatar billede jr40 Nybegynder
05. februar 2005 - 11:55 #61
okey bare iorden.
Avatar billede jr40 Nybegynder
13. marts 2005 - 17:50 #62
eagle har du tid hurtigt.?

jeg for denne her fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/siden.asp, line 422



linje 422= rs = Conn.Execute(SQL2)

nogen ide om hvad der er galt.?
Avatar billede eagleeye Praktikant
13. marts 2005 - 17:55 #63
Folderen databasen filen ligger i skal give skrive rettighed til IUSR_masinnavn (Internet Guest Acceount). Det gives via fil systemet i windows og alt efter hvilekn version af windows gøres det lidt forskelligt.

Har du XP skal du først gøre dette for at få adgang til den folder man kan ændre rettighederne:
- Åbn denne computer
- Klik på menupunktet Funktioner
- Mappeindstillinger
- Klik på fanen Vis
- Fjern flueben i "Brug Enkel Fildelign" så får du adgang til en fane der hedder "sikkerhed", som du skal bruge om lidt.


For NT/2000/XP gøres dette:
- Vælg den folder databasen ligger i
- Højreklik og vælg Properties
- Vælg security fanen
- Hvis brugeres ikke findes tryk på Add og tilføj IUSR_maskinnavn.
- Giv så IUSR_maskinnavn skriverettighed / write
Avatar billede eagleeye Praktikant
13. marts 2005 - 17:57 #64
Får du fejlen i forbindelse med et web-htoel skal man flytte databasen til en folder hvor der er skriverettighed. Der er flere web-hoteller som har en bestemt folder med skriverettighed og det er i den man skal ligge sin database. Så prøv at flytte databasen til den folder og husk at rette connection stringen så den passer med den nye sti. Web-hotellet har gerne en support side som forklare det mere eller desværre mindre godt.
Avatar billede jr40 Nybegynder
13. marts 2005 - 17:59 #65
Okey mange tak for info..  jeg skriver lige en mail til web hotel udbyderen.
Avatar billede jr40 Nybegynder
28. marts 2005 - 23:44 #66
Hey eagleeye, håber du er online og kan give et svar asap.. :o)

Kan du svare på hvorfor jeg for denne her fejl:
Microsoft VBScript compilation error '800a03ea'

Syntax error

/kontakt_admin.asp, line 175

elseif mode="update" then
^

har kigget og kigget på min kontakt_admin.asp side, men syntes altså alt står som det skal være.
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