Avatar billede _petrucci Nybegynder
02. oktober 2002 - 08:49 Der er 7 kommentarer og
1 løsning

Find antal tabelrækker og udskriv

Hejsa,

jeg har en database med 15 "track" fields (TRACK1, TRACK2, TRACK3 osv.) samt et "trackamount" felt der indeholder en talværdi. Denne talværdi viser hvor mange er "track" felterne der er udfyldt. Eksempel:

TRACKAMOUNT har værdien 14 - dermed er TRACK1 til TRACK14 udfyldt i den række.

Jeg vil nu gerne have udskrevet det præcise antal linjer inklusiv felt værdierne i en liste. Det kræver så vidt jeg ved en form for loop-sekvens, der går igen indtil tallet i "trackamount" er nået.

Men hvordan gøres dette nemmest?
Avatar billede oasen Nybegynder
02. oktober 2002 - 09:07 #1
Set rs = Conn.Execute("Select Sum(trackamount) As TrackSum From DinTabel")
Response.Write "Sum: " & rs("TrackSum")

Set rs = Conn.Execute("Select Count(*) As Antal From DinTabel")
Response.Write "Antal: " & rs("Antal")
Avatar billede oasen Nybegynder
02. oktober 2002 - 09:15 #2
Jeg har vist misforstået. Du vil gerne udskrive alle de TRACKS, der ikke er tomme, ik'?

Set rs = Conn.Execute("Select * From DinTabel")
While Not rs.EOF
  For i = 1 To rs("trackamount")
      Response.Write rs("TRACK" & i) & " - "
  Next
  Response.Write "<br>"
  rs.MoveNext
Wend
Avatar billede _petrucci Nybegynder
02. oktober 2002 - 09:15 #3
Nåehh det var nu ikke helt det jeg mente. Det skal bruges til en discography side, hvor hvert album har et vist antal tracks (trackamount, som står fast skrevet inde i db feltet, f.eks. "14"). I samme tabelrække er der så 15 felter, hvor alle sangtitlerne står - men der kan så kun være udfyldt 11 af de 15 felter, hvis albummet kun har 11 titler (i hvilket tilfælde "trackamount" bliver "11").

Så jeg vil gerne finde/udtrække de 11 (eller xx afhængig af hvilket album jeg vælger) tracknumre + værdien (sangtitlen) så det kommer til at se således ud:

1. Titel track 1
2. Titel track 2
3. Titel track 3

..osv
Avatar billede _petrucci Nybegynder
02. oktober 2002 - 09:16 #4
woops, så ikke lige din sidste post. checker det lige :)
Avatar billede _petrucci Nybegynder
02. oktober 2002 - 09:19 #5
Får godt nok følgende fejl:

ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
Avatar billede _petrucci Nybegynder
02. oktober 2002 - 09:26 #6
woops my bad. det virker fint - og endda helt uden While Not loopet :) takker
Avatar billede oasen Nybegynder
02. oktober 2002 - 09:28 #7
Set rs = Conn.Execute("Select * From DinTabel")
While Not rs.EOF
  For i = 1 To 15
      If Not IsNull(rs("TRACK" & i)) And rs("TRACK" & i) <> "" Then
        Response.Write rs("TRACK" & i) & " - "
      End If
  Next
  Response.Write "<br>"
  rs.MoveNext
Wend
Avatar billede oasen Nybegynder
02. oktober 2002 - 09:30 #8
Nåå... det burde det også. Det yderste loop behøver du kun bruge, hvis du vil have mere end ét album udskrevet. F.eks. i forbindelse med en søgefunktion.
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