Avatar billede jayo Nybegynder
25. februar 2003 - 10:27 Der er 8 kommentarer og
6 løsninger

Tælle antal records i access database

Hej,

Jeg benytter en simpel Access database til at lave et directory over links på en website. Her er koden jeg benytter til at vise disse links på mit site:

<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/links.mdb")
' Åben databaseforbindelsen
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from Links where Category = 'Computers' order by LinkText"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

Response.Write ("<table class=link border=0 cellpadding=0 cellspacing=1>")

' Gennemløb Recordset (rs) med en løkke
Do

Response.Write ("<tr><td>")

  ' Udskriv værdien af kolonnen
  Response.write  "<a href='"& rs("LinkURL") & "' target=new>" & rs("LinkText")& "</a>"
  Response.Write ("</td></tr><tr><td>")
  Response.Write rs("LinkDescription")

Response.Write ("</td></tr>")

Response.Write ("<tr><td>")

  ' Udskriv værdien af kolonnen
  Response.Write ("Category: <b>") & rs("Category") & ("</b>")

Response.Write ("</td></tr>")

Response.Write ("<tr><td>")

  Response.Write ("<span style='font-size:1px;'><br></span>")

Response.Write ("</td></tr>")


  ' 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

Response.Write ("</table>")


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>


Jeg vil gerne *øverst* på siden vise hvor mange links der er på siden. Jeg har forsøgt at indsætte en variabel inde i mit loop, men på den måde kan jeg kun vise antallet nederst på siden.

Nogen forslag?

-jayo
Avatar billede c971572 Nybegynder
25. februar 2003 - 10:34 #1
select count(*) as count from table er en mulighed
Avatar billede mortvader Nybegynder
25. februar 2003 - 10:34 #2
rs.open "select count(*) as antal from tabel"
response.write "der er "&rs("antal")&" records i tabellen"
rs.close
Avatar billede jernespand Nybegynder
25. februar 2003 - 10:37 #3
i sql bruger jeg: recordtilsammen=rs.recordCount, , det skulle være det samme i acces
Avatar billede jayo Nybegynder
25. februar 2003 - 10:39 #4
øh, det kan godt være jeg spørger dumt... hvor skal mortvaders kode indsættes??
Avatar billede justdoit Nybegynder
25. februar 2003 - 11:08 #5
strSQL = "Select COUNT(*) as total from Links where Category = 'Computers' order by LinkText"

Udskrives der hvor du vil have counteren til at være:

rs("antal")
Avatar billede oasen Nybegynder
25. februar 2003 - 11:09 #6
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.open "Select * from din_tabel", Conn, 1
response.write rs("RecordCount")
rs.close

- eller

Set rs = Conn.Execute("Select Count(*) As Antal From din_tabel")
Response.Write rs("Antal")
Set rs = Nothing


Uanset hvad du vælger skal det indsættes efter du har åbnet databasen og inden, du skal bruge resultatet. Det burde ikke volde dig problemer.
Avatar billede ronja7 Nybegynder
25. februar 2003 - 11:10 #7
Inden din SQL-forespørgsel.
Du kan eventuelt også prøve med innerHTML og JavaScript. Men mortvaders forslag er klart det nemmeste.
Avatar billede oasen Nybegynder
25. februar 2003 - 11:11 #8
Undskyld - rs.RecordCount selvfølgelig...
Avatar billede oasen Nybegynder
25. februar 2003 - 11:12 #9
innerHTML???
Avatar billede jayo Nybegynder
25. februar 2003 - 11:16 #10
Beklager.... jeg kan stadig ikke få det til at fungere. Er der en der kan vise mig hvor jeg skal indsætte det (i ovenstående kode i mit første spg)? Skal jeg slette noget af det kode jeg har allerede??
Avatar billede oasen Nybegynder
25. februar 2003 - 11:41 #11
Hehe... Der er jo intet endegyldigt svar! Det kommer an på, hvor du vil have det udskrevet!

Du kan f.eks. indsætte det lige efter "Conn.Open DSN" i linie 7. Så vil resultatet blive udtrukket/udskrevet lige inden din tabel.
Avatar billede somaliomar Praktikant
25. februar 2003 - 12:01 #12
Prøv med:

<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/links.mdb")
' Åben databaseforbindelsen
Conn.Open DSN

strSQL = "Select COUNT(*) As Antal from Links where Category = 'Computers'"
Set rs = Conn.Execute(strSQL)
Response.Write "Antal links: " & rs("Antal")
rs.Close

' SQL forespørgsel
strSQL = "Select * from Links where Category = 'Computers' order by LinkText"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

Response.Write ("<table class=link border=0 cellpadding=0 cellspacing=1>")

' Gennemløb Recordset (rs) med en løkke
Do

Response.Write ("<tr><td>")

  ' Udskriv værdien af kolonnen
  Response.write  "<a href='"& rs("LinkURL") & "' target=new>" & rs("LinkText")& "</a>"
  Response.Write ("</td></tr><tr><td>")
  Response.Write rs("LinkDescription")

Response.Write ("</td></tr>")

Response.Write ("<tr><td>")

  ' Udskriv værdien af kolonnen
  Response.Write ("Category: <b>") & rs("Category") & ("</b>")

Response.Write ("</td></tr>")

Response.Write ("<tr><td>")

  Response.Write ("<span style='font-size:1px;'><br></span>")

Response.Write ("</td></tr>")


  ' 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

Response.Write ("</table>")


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede jayo Nybegynder
25. februar 2003 - 12:28 #13
DET VIRKER!! Mange tak for hjælpen allesammen!
Avatar billede somaliomar Praktikant
25. februar 2003 - 12:29 #14
Takke for points...
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