Avatar billede mnoergaard Nybegynder
29. juli 2003 - 14:06 Der er 13 kommentarer og
1 løsning

2 x RS hvor den ene bestemmer hvad den anden skal

? underligt ?
ja, det jeg vil have er at jeg har en side, hvor jeg får en lidste ud på (en lidste over datoer som er i en tabel)
denne del er lavet. og virker sådan at når der er flere ens datoer i tabellen, så hiver den kun den ud en gang. og hopper vidre til næste.

PROBLEMET er så.:

Under hver dato skal der så komme en eller flere titler ud.
altså:

1. august 2003
-titel 1
-titel 2

2. august 2003
-titel 3

3. august 2003
-titel 4.5.6.7........-> OSV

nogle der kan hjælpe lidt med det?
Avatar billede eagleeye Praktikant
29. juli 2003 - 15:21 #1
Ja så må du lave lidt kode som holder styr på hvilken du er ved og det er en ny dato. Samt bruge GROUP BY så events på samme dato bliver samlet i et. Eks på koden:

<%
SQL = "SELECT dato, titel FROM tablenavn GROUP BY dato ORDER BY dato ASC"
Set rs = CONN.Execute(SQL)

dato = ""  'Bruges til at huske den dato man er ved
do while not rs.EOF
  if dato <> rs("dato") then
    Response.Write rs("dato")
    Response.write "<br>"
    dato = rs("dato")
  end if

  Response.Write "-" & rs("titel")
  Response.write "<br>"

  rs.Movenext
loop
%>
Avatar billede mnoergaard Nybegynder
29. juli 2003 - 15:26 #2
kan du hjælpe lidt når jeg har denne her kode?
#=mine kommentar#


<%
Response.Write "<table width=""590"" cellspacing=""0"" cellpadding=""0"" border=""0"">"
    ' Laver og udskriver SQL forespørgsel (rsSelDisDate)
    Set rsSelDisDate = Conn.Execute("SELECT DISTINCT(Biodato) FROM Film WHERE Biodato > #" & Date & "# ORDER BY Biodato")

    If Not (rsSelDisDate.BOF AND rsSelDisDate.EOF) THen
        ' Gennemløb Recordset (rsSelDisDate) med en løkke
        Do
            Response.Write "<tr>"
                Response.Write "<td><li><b style=""font-size:11px; text-decoration:underline;"">" & FormatDateTime(rsSelDisDate("Biodato"),vbLongDate) & "</b></td>"
            Response.Write "</tr>"
            Response.Write "<tr>"
                Response.Write "<td>"
                    Response.Write "<table align=""center"" width=""520"" cellspacing=""0"" cellpadding=""0"" border=""0"">"
                    Response.Write "<tr>"
                        Response.Write "<td>Her# her skal titlerne så komme#</td>"
                    Response.Write "</tr>"
                    Response.Write "</table>"
                Response.Write "</td>"
            Response.Write "</tr>"
            Response.Write "<tr>"
                Response.Write "<td height=""17""></td>"
            Response.Write "</tr>"
        ' Gå til næste Record i rsSelDisDate
        rsSelDisDate.MoveNext

        ' Fortsæt indtil rsSelDisDate er gennemløbet (EOF = End Of File)
        Loop While Not rsSelDisDate.EOF
    End If
Response.Write "</table>"




#her under er det der bruges til at hive titlerne ud#

    ' Laver og udskriver SQL forespørgsel (rs)
        Set rs = Conn.Execute("SELECT Id, tDansk, tOriginal, biodato FROM Film WHERE Biodato > #" & Date & "# ORDER By Biodato")


    ' Starter lists
    Response.Write "<ul type=""disc"">"

    ' Gennemløb recordset (rs) med en løkke
    Do
    ' Hvis feltet "tDansk" er forskelligt fra tom
    If rs("tDansk") <> "" Then
        ' Indsætter indholdet fra rs("tDansk") til en variabel
        strTdansk = "&nbsp;<i>(" & rs("tDansk") & ")</i>"
    Else
        strTdansk = ""
    End If

    Set rs1 = Conn.Execute("SELECT * FROM Anmeldelser WHERE RefId = " & rs("Id"))

    If (rs1.BOF AND rs1.EOF) THen
        strRefId = "&nbsp;"
    Else
        strRefId = "<b><i><font color=""#FF0000"" size=""1"">Anmeldt</font></i></b>"
    End If

' Hvis feltet "RefId" er ligmed Id fra film tabellen
    If rs("Id") <> rs1("RefId") Then
    ' Indsæt font
        strRefId = "&nbsp;"
    Else
        strRefId = "<b><i><font color=""#FF0000"" size=""1"">Anmeldt</font></i></b>"
    End If

    ' Udskriver et link med teksten fra filmens originale titel
    Response.Write "<li><a href=""vis_film.asp?filmID=" & rs("Id") & """>" & rs("biodato") & "&nbsp;" & rs("tOriginal") & "</a>" & strTdansk & "&nbsp;" & strRefId

    ' Gå til næste record i rs
    rs.MoveNext

    ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
    Loop While Not rs.EOF

    ' Afslutter lists
    Response.Write "</ul>"

%>
Avatar billede eagleeye Praktikant
29. juli 2003 - 15:40 #3
hov ja GROUP BY behøves ikke når man bruger ORDER BY dato også så er kolonnen dato jo sorteret rigtigt. Men DISTINCT skal væk for at få alle titler med ud:

Prøv med dette kode:




Response.Write "<table width=""590"" cellspacing=""0"" cellpadding=""0"" border=""0"">"
    ' Laver og udskriver SQL forespørgsel (rsSelDisDate)
    Set rsSelDisDate = Conn.Execute("SELECT Biodato, titel FROM Film WHERE Biodato > #" & Date & "# ORDER BY Biodato")

    If Not (rsSelDisDate.BOF AND rsSelDisDate.EOF) THen
        ' Gennemløb Recordset (rsSelDisDate) med en løkke
        dato = ""
        Do
            Response.Write "<tr>"
            Response.Write "<td>"
            if dato <> rsSelDisDate("Biodato") then
              Response.Write "<li><b style=""font-size:11px; text-decoration:underline;"">" & FormatDateTime(rsSelDisDate("Biodato"),vbLongDate) & "</b>"
              dato = rsSelDisDate("Biodato")
            End If
            Response.Write "</td>"
            Response.Write "</tr>"
            Response.Write "<tr>"
              Response.Write "<td>"
' Her er titel tilføjet
        Response.Write "-" & rsSelDisDate("titel")
              Response.Write "</td>"
            Response.Write "</tr>"
            Response.Write "<tr>"
                Response.Write "<td height=""17""></td>"
            Response.Write "</tr>"
        ' Gå til næste Record i rsSelDisDate
        rsSelDisDate.MoveNext

        ' Fortsæt indtil rsSelDisDate er gennemløbet (EOF = End Of File)
        Loop While Not rsSelDisDate.EOF
    End If
Response.Write "</table>"
Avatar billede mnoergaard Nybegynder
29. juli 2003 - 15:44 #4
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.

/kommer_bio2.asp, line 81
Avatar billede eagleeye Praktikant
29. juli 2003 - 15:46 #5
Hov glemte at skrive:
Du skal havde rette denne SQL linje så den også hendter titlen ud, her er den kaldt titel:

Set rsSelDisDate = Conn.Execute("SELECT Biodato, titel FROM Film WHERE Biodato > #" & Date & "# ORDER BY Biodato")
Avatar billede eagleeye Praktikant
29. juli 2003 - 15:47 #6
Det samme i denne linje som udsrivre fra kolonnen:

        Response.Write "-" & rsSelDisDate("titel")
Avatar billede mnoergaard Nybegynder
29. juli 2003 - 15:50 #7
? hvordan?
Avatar billede mnoergaard Nybegynder
29. juli 2003 - 15:50 #8
kon til at apseter dit svar, ved et uheld, men håber du gider at hjælpe til det virker
Avatar billede mnoergaard Nybegynder
29. juli 2003 - 15:53 #9
1. august 2003

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/kommer_bio2.asp, line 98
Avatar billede eagleeye Praktikant
30. juli 2003 - 00:37 #10
Linje 98 er sikkert denne linje og du skal rette  titel  til det som din kolonne som indeholder titlen hedder.:

Response.Write "-" & rsSelDisDate("titel")
Avatar billede mnoergaard Nybegynder
30. juli 2003 - 00:58 #11
oki det virker, dejligt,,

mange tak skal du have..
Avatar billede Jman Praktikant
19. august 2003 - 14:00 #12
eagleeye - faldt lige over denne i min søgning: Hvad nu hvis det ikke er dato men et tekstefelt ?
Avatar billede eagleeye Praktikant
19. august 2003 - 16:00 #13
?
Det ændre ikke på selv koden, dog sorteres tekst felt forskelligt i forhold til et felt af type dato.
Har du datoen i et tekstfelt?
Så kan du bruger (Access) CDate(dato)
Avatar billede Jman Praktikant
19. august 2003 - 16:18 #14
det har intet med dato at gøre - jeg ville benytte group by, ligesom, når man vælger kategori her på eksperten
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