Avatar billede dj-sejler Praktikant
14. februar 2003 - 15:40 Der er 10 kommentarer og
1 løsning

Udtræk fra database

jeg har en access database hvor jeg har et felt med hvor dataen er separeret med " ; " (semikolon)

Hvordan får jeg det skelt og skrevet på liste?
Hvis man da kan?!?
Avatar billede somaliomar Praktikant
14. februar 2003 - 15:49 #1
Umiddelbart vil jeg sige, at man kan separere oplysninger i dit felt vha. noget VBA-kode. Men hvor vil du have at oplysningerne skal gemmes når de er hentet fra feltet? På en ny tabel?
Avatar billede dj-sejler Praktikant
14. februar 2003 - 15:51 #2
Nej...
det er til at vise på en side på en hp
Avatar billede eagleeye Praktikant
14. februar 2003 - 15:57 #3
Du kan bruge split til at så et array som du kan udskrive eks.

str = "data1 ; data2 ; data3"
arr = Split(str, " ; ")
for i = lbound(arr) to ubound(arr)
  response.write arr(i) & "<br>"
next


Det vil på din side give.:
data1
data2
data3
Avatar billede dj-sejler Praktikant
14. februar 2003 - 16:06 #4
-->eagleeye

Vil det sige at man skal vide hvormange data der i feltet?
str = "data1 ; data2 ; data3"
Avatar billede eagleeye Praktikant
14. februar 2003 - 16:10 #5
Nej du behøver ikke kende antallet. Det var bare et eks. Du skal så udskifte "data1 ; data2 ; ....." med data fra din kolonnne eks:

str = rs("kolonnenavn")
Avatar billede dj-sejler Praktikant
14. februar 2003 - 16:34 #6
-->eagleeye

Jeg har denne side:

<-- forfatter.asp -->

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("bib.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From forfatter Where id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
%>

<table cellpadding=2 cellspacing=2 border=1 bordercolor=black class=format width="500">

  <tr>
    <td align=center width="20%" bgcolor=#0D5275><font color=#2BABED>Navn</font></td>
    <%
    Response.Write "<td>" & rs("for") & " " & rs("efter") & "</td>"
    %>
  </tr>

  <tr>
    <td align=center width="20%" bgcolor=#0D5275><font color=#2BABED>søgeord</font></td>
    <%
    Response.Write "<td>" & rs("sogeord") & "</td>"
    %>
  </tr>

  <tr>
    <td align=center width="20%" bgcolor=#0D5275><font color=#2BABED>biografi</font></td>
    <%
    Response.Write "<td>" & rs("bio") & "</td>"
    %>
  </tr>

</table><br>
<p>
Bileografi
</p>


<%
    Do
      ' Personens navn
      strtitel = rs("titel")
   
      ' lav et link til person.asp med Id-værdien i URL
      strLink = "<a href='bog.asp?titel=" & rs("titel") & "'>" & strtitel & "</a>"
   
      ' Liste med links
      Response.Write "<li>" & strLink & "</li>"
   
      rs.MoveNext
    Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>

Kan det passe det skal sådan ud:

Str = rs("titel")
arr = Spilt(str, " ; ")
for i = iboun(arr) to ubound(arr)
    response.write arr(i) & "<br>"
next

og hvor skal det sættes ind henne?
Avatar billede dj-sejler Praktikant
14. februar 2003 - 16:40 #7
Det kan vel ikke lades sige gøre?!?:

i feltet "titel" skal der stå bøgers titel!
fra database: "forfatter"

men længere ned på siden bruger jeg "titel" igen
(bog.asp?titel=" & rs("titel") & ")
men fra en database der hedder bog!

men der står jo kun en titel i feltet "titel"

Så det jeg skal bruger er at får det ovenstående script til kun at skrive navnet én gang.

Hvis du forstår?!?
Avatar billede eagleeye Praktikant
14. februar 2003 - 17:24 #8
Hvor skal det stå??

Du kan godt putte det ind i loopet:


  Do
      ' Personens navn
      strtitel = rs("titel")
   
      ' lav et link til person.asp med Id-værdien i URL
      strLink = "<a href='bog.asp?titel=" & rs("titel") & "'>" & strtitel & "</a>"
   
      ' Liste med links
      Response.Write "<li>" & strLink & "</li>"
   
      Str = rs("titel")
      arr = Spilt(str, " ; ")
      for i = iboun(arr) to ubound(arr)
        response.write arr(i) & "<br>"
      next

      rs.MoveNext
    Loop While Not rs.EOF
Avatar billede dj-sejler Praktikant
15. februar 2003 - 12:34 #9
også så den enkelte værdi kan tages ud af den anden tabel?

altså:

hvis der i den ene tabel står: Fiskernes hævn; Herfra hvor vi står;

så linkene kommer til at være:

bog.asp?titel=fiskernes hævn
bog.asp?titel=herfra hvor vi står

eller hva?!?
Avatar billede dj-sejler Praktikant
15. februar 2003 - 12:56 #10
Do

      ' Personens navn
      strtitel = rs("titel")
   
      ' lav et link til person.asp med Id-værdien i URL
      strLink = "<a href='bog.asp?titel=" & rs("titel") & "'>" & strtitel & "</a>"
   
      ' Liste med links
      Response.Write "<li>" & strLink & "</li>"

   
      Str = rs("titel")
      arr = Split(str, "; ")
      for i = iboun(arr) to ubound(arr)      <-- linie 75
        response.write arr(i) & "<br>"
      next

      rs.MoveNext
    Loop While Not rs.EOF



Jeg har sat det ind ligesom du har gjort her over men jeg får denne fejl:

Der opstod en Microsoft VBScript-kørselsfejl fejl '800a000d'

Typer stemmer ikke overens: 'iboun'

/bib/forfatter.asp, linje 75
Avatar billede somaliomar Praktikant
15. februar 2003 - 15:59 #11
Prøv med

Do

      ' Personens navn
      strtitel = rs("titel")
   
      ' lav et link til person.asp med Id-værdien i URL
      strLink = "<a href='bog.asp?titel=" & rs("titel") & "'>" & strtitel & "</a>"
   
      ' Liste med links
      Response.Write "<li>" & strLink & "</li>"

   
      Str = rs("titel")
      arr = Split(str, "; ")
      for i = lbound(arr) to ubound(arr)
        response.write arr(i) & "<br>"
      next

      rs.MoveNext
    Loop While Not rs.EOF
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

IT-JOB