Avatar billede Slettet bruger
30. marts 2003 - 12:44 Der er 11 kommentarer og
1 løsning

Opdatering sidevis

Jeg har et lille problem, som jeg ikke kan finde ud af løse. De poster der kommer på side 1, er efterhånden så mange at siden bliver meget "tung", så jeg har delt den op. Nu er det så problemet opstår, for de sider jeg ikke opdater bliver sat til false. Så koden skal ændre til kun at opdater de poster/ID som er på den side jeg ser. Det leder mig så til sagens kerne, det kan jeg ikke finde ud af og håber du en af jer kan hjælpe mig.


Side 1
Do While Not rsData.EOF

<% Response.Write (rsData("Id")) %>


<% if rsData("Betalt")= True Then%>
<INPUT TYPE="checkbox" NAME="<% Response.Write (rsData("Id")) %>" checked value="betalt">
<%Else%>
<INPUT TYPE="checkbox" NAME="<% Response.Write (rsData("Id")) %>" value="betalt">
<%End If%>

rsData.MoveNext
Loop

dbconnect.Close
Set dbconnect = Nothing

Side 2
Dim dbconnect, dbrecord, strSQL
Set dbconnect = Server.CreateObject("ADODB.Connection")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(dbpath)
dbconnect.Open strDSN

Set dbrecord = dbconnect.Execute("SELECT * FROM femina")

Do While not dbrecord.EOF
If Request.Form(CStr(dbrecord("Id"))) = "betalt" Then
  strSQL = "UPDATE femina SET Betalt = True WHERE Id =" & dbrecord("Id")
Else
  strSQL = "UPDATE femina SET Betalt = False WHERE Id =" & dbrecord("Id")
End If

dbconnect.Execute(strSQL)
dbrecord.MoveNext
Loop

dbrecord.Close
dbconnect.Close
Set dbconnect = Nothing
Avatar billede -master-d- Nybegynder
30. marts 2003 - 12:55 #1
Prøv med denne her :

Do While not dbrecord.EOF
If Request.Form(CStr(dbrecord("Id"))) = "betalt" Then
  strSQL = "UPDATE femina SET Betalt = True WHERE Id =" & dbrecord("Id") & ""
Else
  strSQL = "UPDATE femina SET Betalt = False WHERE Id =" & dbrecord("Id") & ""
End If
Avatar billede Slettet bruger
30. marts 2003 - 13:27 #2
Desværre, de andre sider blev blanke :-(
Avatar billede Slettet bruger
30. marts 2003 - 13:38 #3
Jeg sender gerne siderne og databasen
Avatar billede Slettet bruger
30. marts 2003 - 13:52 #4
Efter nærmere eftertanke, kan du selv hente den her:
http://www.kif-atletik.dk/opgave.zip
Avatar billede -master-d- Nybegynder
30. marts 2003 - 20:27 #5
ok henter den lige så
Avatar billede -master-d- Nybegynder
30. marts 2003 - 22:33 #6
Så fik jeg det til at virke, du kan dine asp filer her

http://www.denpei.frip.dk/eksperten/opgave.zip

Fejlen lå i at denne linie ikke kan lade sig gøre :
Request.Form(CStr(dbrecord("Id"))) = "betalt"

Istedet laver man en variabel med dbrecord("Id") (fx IDnr = dbrecord("Id"))
og derefter kan man så lave sin forespørgsel:
If CStr(Request.Form(IDnr)) = "betalt" Then

Det var det jeg rettede det til.
Avatar billede Slettet bruger
30. marts 2003 - 23:39 #7
Prøv at vælge en tilfældig side og tryk "opdater" og prøv så at se på en af de andre sider efterfølgende. Alle markeringerne er pist væk - desværre.
Avatar billede -master-d- Nybegynder
31. marts 2003 - 11:16 #8
Ikke på min
Avatar billede Slettet bruger
31. marts 2003 - 21:59 #9
Måske udtrykker jeg min ikke helt klart, det er alle markeringerne i betaling der forsvinder.
Avatar billede Slettet bruger
01. april 2003 - 00:00 #10
Kunne du evt. sende et link hvor jeg kunne se det? Måske jeg gør noget forkert?!?!!
Avatar billede Slettet bruger
02. april 2003 - 14:54 #11
Jeg sidder her og vil så gerne have det til at virke, men det er åbenbart ikke særlig nemt. Måske jeg skulle lokke med en bonus?
Avatar billede Slettet bruger
02. april 2003 - 15:07 #12
Det er vist ikke til at trække folk her ind, så jeg lukker og kommer igen :)
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