Avatar billede ravnkilde Nybegynder
06. september 2004 - 21:00 Der er 3 kommentarer og
1 løsning

Udtræk fra datbase fordeles over flere tabeller på samme side

Hej!

På den igen, sbm!

Jeg har en database med et felt, der hedder Competence. I Competence er der seks områder (eks. kaldet 1, 2, 3, 4, 5 og 6).

Når jeg laver mit udtræk fra databasen får jeg listet samtlige poster, men det bliver uoverskueligt,trods en sortering efter Posternumber.

Derfor vil jeg gerne have udtrækket fra databasen fordelt over seks tabeller - men stadig på samme side. Eks. alle data fra Competence-området 1 skal i en tabel for sig, alle data fra Competence-området 2 skal ind en tabel for sig osv.

Nedenfor ses min nuværende kode, som formentligt skal justeres på flere punkter.

Jeg har brug for lidt hjælp her...

--- start på kode ---

<%
Option Explicit

Dim objConn
Dim objRs
Dim intPosternumber
Dim strSQL, strCompetence, strTitle, strSubtitle, strLanguage, strPDF_URL, strFilesize, strBGColor, strPosters, strNew
Dim blnBGColor

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("database/Posters.mdb")

strSQL = "SELECT Posternumber, Competence, Title, Subtitle, Language, PDF_URL, Filesize, New FROM Data ORDER BY Posternumber ASC;"
Set objRs = objConn.Execute(strSQL)
If Not (objRs.BOF AND objRs.EOF) Then
    Do While Not objRs.EOF
        intPosternumber = objRs("Posternumber")
        strCompetence = objRs("Competence")
        strTitle = objRs("Title")
        strSubtitle = objRs("Subtitle")
        strLanguage = objRs("Language")
        strPDF_URL = objRs("PDF_URL")
        strFilesize = objRs("Filesize")
               
        If blnBGColor = True Then
            strBGColor = "#FFFFFF"
            blnBGColor = False
        Else
            strBGColor = "#eeeeee"
            blnBGColor = True
        End If           
       
        If objRs("New") = true Then
strNew = " <img src=""images/new.gif"" alt=""New"" /> "
Else
strNew = ""
End If
   
strPosters = strPosters & "<tr bgcolor="""& strBGColor &"""><td>"& intPosternumber &"</td><td>"& strCompetence &"</td><td><a href="""&Server.MapPath("./"&strPDF_URL)&""">"& strTitle &"</a>"& strNew &"</td><td>"& strSubtitle &"</td><td>"& strLanguage &"</td><td align=""right"">"& strFilesize &"</td></tr>"

        objRs.MoveNext
    Loop
Else
    strPosters = "<tr><td colspan=""2"">Der er ingen Poster!</td></tr>"
End If

objConn.Close
Set objConn = Nothing

Response.Write("<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""1""><tr bgcolor=""#CCCCCC""><td><b>Poster No.</b></td><td><b>Competence area</b></td><td><b>Title</b></td><td><b>Subtitle</b></td><td><b>Language</b></td><td><b>File size</b></td></tr>")
Response.Write strPosters
Response.Write("</table>")
%>
   
--- slut på kode ---
Avatar billede eagleeye Praktikant
06. september 2004 - 21:28 #1
Prøv sådan her:


<%
Option Explicit

Dim objConn
Dim objRs
Dim intPosternumber
Dim strSQL, strCompetence, strTitle, strSubtitle, strLanguage, strPDF_URL, strFilesize, strBGColor, strPosters, strNew
Dim blnBGColor
Dim OldCompetence

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("database/Posters.mdb")

strSQL = "SELECT Posternumber, Competence, Title, Subtitle, Language, PDF_URL, Filesize, New FROM Data ORDER BY Competence, Posternumber ASC;"
Set objRs = objConn.Execute(strSQL)
If Not (objRs.BOF AND objRs.EOF) Then
    Do While Not objRs.EOF
        intPosternumber = objRs("Posternumber")
        strCompetence = objRs("Competence")
        strTitle = objRs("Title")
        strSubtitle = objRs("Subtitle")
        strLanguage = objRs("Language")
        strPDF_URL = objRs("PDF_URL")
        strFilesize = objRs("Filesize")
               
        if OldCompetence <> strCompetence then
          strPosters = strPosters & "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""1""><tr bgcolor=""#CCCCCC""><td><b>Poster No.</b></td><td><b>Competence area</b></td><td><b>Title</b></td><td><b>Subtitle</b></td><td><b>Language</b></td><td><b>File size</b></td></tr>"
          OldCompetence = strCompetence
        end if

        If blnBGColor = True Then
            strBGColor = "#FFFFFF"
            blnBGColor = False
        Else
            strBGColor = "#eeeeee"
            blnBGColor = True
        End If           
       
        If objRs("New") = true Then
strNew = " <img src=""images/new.gif"" alt=""New"" /> "
Else
strNew = ""
End If
   
strPosters = strPosters & "<tr bgcolor="""& strBGColor &"""><td>"& intPosternumber &"</td><td>"& strCompetence &"</td><td><a href="""&Server.MapPath("./"&strPDF_URL)&""">"& strTitle &"</a>"& strNew &"</td><td>"& strSubtitle &"</td><td>"& strLanguage &"</td><td align=""right"">"& strFilesize &"</td></tr>"

        objRs.MoveNext
        if obj.Rs.EOF then
          strPosters=strPosters & "</table>"
        else
          if OldCompetence <> objRs("Competence") then
            strPosters=strPosters & "</table><br>"
          end if
        end if
    Loop
Else
    strPosters = "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""1""><tr><td>Der er ingen Poster!</td></tr></table>"
End If

objConn.Close
Set objConn = Nothing

Response.Write strPosters
%>
Avatar billede ravnkilde Nybegynder
07. september 2004 - 10:40 #2
eagleeye: Tak for den hurtige reaktion. Dit forslag virker. MEN er det muligt at indsætte Competence området som "overskrift" i den pågældende tabel? Således at første række i den først tabel hedder: Poster No. - Flatwork Finishing Systems - Title - Subtitle - Language - File size.

Der hvor jeg gerne vil have Flatwork Finishing Systems til at stå, står der p.t. ved alle tabeller "Competence area". Forstår du hvad jeg mener?
Avatar billede eagleeye Praktikant
07. september 2004 - 17:06 #3
Ja det tror jeg prøv at rette:

        if OldCompetence <> strCompetence then
          strPosters = strPosters & "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""1""><tr bgcolor=""#CCCCCC""><td><b>Poster No.</b></td><td><b>Competence area</b></td><td><b>Title</b></td><td><b>Subtitle</b></td><td><b>Language</b></td><td><b>File size</b></td></tr>"
          OldCompetence = strCompetence
        end if


Til dette så:

        if OldCompetence <> strCompetence then
          strPosters = strPosters & "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""1""><tr bgcolor=""#CCCCCC""><td><b>Poster No.</b></td><td><b>" & strCompetence & "</b></td><td><b>Title</b></td><td><b>Subtitle</b></td><td><b>Language</b></td><td><b>File size</b></td></tr>"
          OldCompetence = strCompetence
        end if
Avatar billede ravnkilde Nybegynder
08. september 2004 - 09:02 #4
Helt perfekt, eagleeye!
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