Avatar billede quarkb Nybegynder
31. august 2006 - 09:45 Der er 20 kommentarer og
1 løsning

Automatisk generering af tabel ud fra record count fra database

Hvordan laver jeg en talbel med række og kolonne antal efter recoud count fra database udtræk?

Database giver f.eks. følgende udtræk række=5 og kolonne=9
Avatar billede softspot Forsker
31. august 2006 - 09:50 #1
Det kunne være noget i stil med dette:

rowCnt = rs("række")
colCnt = rs("kolonne")

<table>
<%
for r = 1 to rowCnt
  %><tr><%
  for c = 1 to colCnt
    %><td>&nbsp;</td><%
  next
  %></tr><%
next
%>
</table>
Avatar billede quarkb Nybegynder
31. august 2006 - 11:55 #2
Det er noget i den retning, jeg har dog brug for at kunne indsætte en række og kolonne hvori der skal være en "overskrift" for hver række/kolonne
Avatar billede softspot Forsker
31. august 2006 - 12:05 #3
Det gør du blot efter behov (om jeg så må sige :)). F.eks. således:

rowCnt = rs("række")
colCnt = rs("kolonne")

<table>
<tr><td>&nbsp;</td><%
for c = 1 to colCnt
  %><td>&nbsp;</td><%
next
%><tr><%
for r = 1 to rowCnt
  %><tr><td>rækkeheader</td><%
  for c = 1 to colCnt
    %><td>&nbsp;</td><%
  next
  %></tr><%
next
%>
</table>

...hvis ellers jeg har forstået dig korrekt :)
Avatar billede quarkb Nybegynder
31. august 2006 - 12:23 #4
det er et godt skridt i den rigtige retning, kan du ikke lige også sætte kolonne header på?
Avatar billede softspot Forsker
31. august 2006 - 12:29 #5
Det mener jeg at jeg har gjort... det er den første løkke i koden.
Avatar billede softspot Forsker
31. august 2006 - 12:31 #6
...men det skal lige være en </tr> i stedet for <tr> inden den anden løkke starter:

rowCnt = rs("række")
colCnt = rs("kolonne")

<table>
  <tr>
    <td>&nbsp;</td>
<%
for c = 1 to colCnt
%>
    <td>kolonneheader</td>
<%
next
%>
  </tr>
<%
for r = 1 to rowCnt
%>
  <tr>
    <td>rækkeheader</td>
<%
  for c = 1 to colCnt
%>
    <td>&nbsp;</td>
<%
  next
%>
  </tr>
<%
next
%>
</table>
Avatar billede quarkb Nybegynder
31. august 2006 - 13:09 #7
Så er den del på plads, har du en ide om hvordan jeg får et udtræk fra min database ind i felterne kolonneheader og rækkeheader?
Avatar billede softspot Forsker
31. august 2006 - 13:15 #8
Det afhænger meget af hvordan data hænger sammen i databasen. Er det noget der skal hentes fra den samme tabel som du henter selve indholdet fra eller hentes headerinformation til tabellen fra en anden tabel?
Avatar billede quarkb Nybegynder
31. august 2006 - 13:20 #9
Header information hentes fra en anden tabel, men hvis der er nemmere at det er fra samme tabel som rowCnt og colCnt hentes fra lave jeg bare database/tablen om.
Avatar billede softspot Forsker
31. august 2006 - 13:25 #10
Det er svært at sige hvad der er lettest... lige nu er hele problemstillingen jo ret åben, da du ikke har fortalt hvordan tabellerne er sammensat og det derfor ikke er muligt at komme med en vurdering af hvordan opgaven skal løses... så hvis du kan skitsere:

* hvad det er der skal laves

* hvilke datastrukturer der skal bruges

så kan det være vi kan komme frem til en løsning. :)
Avatar billede quarkb Nybegynder
31. august 2006 - 13:43 #11
Jeg skal bruge følgende:
En html tabel som ud fra et antal variabler fra fra 2 tabler i database danne rækker og kolonner. Med hver sin overskrift, variablerne fra de 2 tabler. I hver celle skal der være et formula felt som skal havde et navn/nummer.

Lidt a'la et regneark med kolonne og rækker.
Avatar billede quarkb Nybegynder
31. august 2006 - 14:11 #12
Hvordan laver jeg dette bedst?

sqlV1 = "SELECT * FROM [ProdVar1] WHERE VareNr = '" & rs.Fields("VareNr") & "'"
Set rsV1 = Server.CreateObject("ADODB.RecordSet")
rsV1.Open sqlV1, conn, 3,3
   
var1    =    rsV1.RecordCount
       
do while not rsV1.EOF
       
var = rsV1.Fields("VarTekst")
       
response.write var       
       
rsV1.movenext
loop
       
rsV1.close
set rsV1 = nothing


dette giver følgende udskrift:
jens
ole
peter
frank
henrik

disse vil jeg gerne havde ind i hver sin variabel f.eks
var1 = jens
var2 = ole

o.s.v.
Avatar billede softspot Forsker
31. august 2006 - 15:23 #13
Til 31/08-2006 13:43:12 >> Hmm... det gjorde det ikke meget lettere at overskue, hvordan opgaven skal løses helt konkret ud fra de informationer. Du skal nok være meget mere konkret mht. feltnavne, sammenhænge mellem tabellerne (hvilke felter knytter tabellerne sammen) og hvordan/hvor du finder kolonne- og rækkeoverskrifterne...

31/08-2006 14:11:47 >> Til dette vil jeg personligt bruge et array og lægge værdierne over i dette. Således:

sqlV1 = "SELECT * FROM [ProdVar1] WHERE VareNr = '" & rs.Fields("VareNr") & "'"
Set rsV1 = Server.CreateObject("ADODB.RecordSet")
rsV1.Open sqlV1, conn, 3,3
   
dim var(0)
dim i
i = 0
do while not rsV1.EOF
  var(i) = rsV1("VarTekst")
  rsV1.movenext
  i = i + 1
  if not rsV1.eof then
    Redim Preserve var(i)
  end if
loop
       
rsV1.close
set rsV1 = nothing

og så aflæse dem således (f.eks.):

for i = 0 to ubound(var)
  response.write var(i)
next
Avatar billede quarkb Nybegynder
01. september 2006 - 10:36 #14
Jeg får denne fejl:
This array is fixed or temporarily locked
produkter.asp, line 117
line 117 = Redim Preserve var(i)
Avatar billede softspot Forsker
01. september 2006 - 10:49 #15
OK, så prøv denne version i stedet:

sqlV1 = "SELECT * FROM [ProdVar1] WHERE VareNr = '" & rs.Fields("VareNr") & "'"
Set rsV1 = Server.CreateObject("ADODB.RecordSet")
rsV1.Open sqlV1, conn, 3,3
   
dim var()
dim i
i = 0
do while not rsV1.EOF
  Redim Preserve var(i)
  var(i) = rsV1("VarTekst")
  rsV1.movenext
  i = i + 1
loop
       
rsV1.close
set rsV1 = nothing

og så aflæse dem således (f.eks.):

for i = 0 to ubound(var)
  response.write var(i)
next
Avatar billede quarkb Nybegynder
01. september 2006 - 11:22 #16
Kanon... nu tro jeg ikke der er mere lige nu, så lav et svar og de 200 point er dine, og endnu en gang 1.000 tak for din hjælp.
Avatar billede softspot Forsker
01. september 2006 - 12:01 #17
Velbekomme - det var så lidt :)
Avatar billede quarkb Nybegynder
01. september 2006 - 12:16 #18
Der var lige en ting mere, når ovenstående står i et loop giver det fejl
Microsoft VBScript runtime error '800a000d'
Type mismatch

/shop/pages/produkter.asp, line 118
line 118 = dim var()
Avatar billede softspot Forsker
01. september 2006 - 13:11 #19
Hmm... prøv at udskifte linien

  dim var()

med disse 2 linier

  dim var
  var = Array()

Jeg er lidt usikker på hvorfor den brokker sig over den variabelerklæring, men det kan være at alternativet fungerer...
Avatar billede quarkb Nybegynder
01. september 2006 - 13:36 #20
Perfekt endnu en gang tusind tak for hjælpen
Avatar billede softspot Forsker
01. september 2006 - 14:25 #21
No problemo - tak for point :)
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