Bygg en nyhetssida med asp och access
Förord
Efter att ha programmerat ett tag så kommer man snart till ett läge där man skulle vilja samla upp data och lagra och kanske kunna hämta visst data beroende på vissa kriterier. Jag kommer här beskriva hur man ansluter till en Access databas från ASP. Jag kommer inte att gå igenom hur man designar en databas och hur man ställer olika kriterier till databasen. Det kan ni läsa i andra kurser här på pellesoft.se.
Innehåll
» Vi skall bygga en nyhetssida, dvs. man skall kunna presentera och lägga till fler nyheter. Vi börjar med att starta Access och skapa en databas. Döp filen till news.asp och lägg till tabellen News och kolumnerna ID, Subject, Text och Date. Kolumnen ID skall vara primärnyckel, Subject och Date skall vara av typen text, kolumnen Text skall vara av typen PN. Så här skall det se ut i designläge.

ID kolumnen kommer vi inte använda oss av i detta exemplet men den är bra att ha med om du vill vidareutveckla funktionen så att du vill kunna radera poster.
Skapa sedan en katalog som du döper till db under roten på din webbplats och placera databas filen där.
Skapa en ASP sida och spara som nyheter.asp under roten på din webbplats och lägg till följande programkod.
Skapa sedan en ny ASP sida och spara som addnews.asp under roten på din webbplats och lägg till följande kod.
Öppna sedan sidorna i din webbläsare och testa att lägga till en nyhet på adressen (localhost)/anndews.asp. Och läs sedan nyheterna på (localhost)/news.asp
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas.
/Daniel Albertsson

ID kolumnen kommer vi inte använda oss av i detta exemplet men den är bra att ha med om du vill vidareutveckla funktionen så att du vill kunna radera poster.
Skapa sedan en katalog som du döper till db under roten på din webbplats och placera databas filen där.
Skapa en ASP sida och spara som nyheter.asp under roten på din webbplats och lägg till följande programkod.
' Denna kod ansluter till databasen och skriver ut alla poster.
<%
Dim objConn
Dim objRst
Dim strSQL
Set objConn = Server.CreateObject("ADODB.Connection") ' Skapar ADO Objekt
Set objRst = Server.CreateObject("ADODB.Recordset") ' Skapar recordset objekt
' Anslutnings sträng till Access databas.
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("\db\news.mdb")
strSQL = "SELECT Date, Text, Subject FROM News ORDER BY Date DESC"
objRst.Open strSQL, objConn , 2, 3
%>
Senaste nytt
' Lopar igenom posterna och skriver ut dem
<% Do While Not objRst.EOF %>
<% =objRst("Subject") %> <% =objRst("Date") %> ' Skriver ut posterna ur recorsetet
<% =objRst("Text") %> ' Skriver ut posterna ur recorsetet
<% objRst.MoveNext
Loop %>
<% objRst.Close
objConn.Close %>
Skapa sedan en ny ASP sida och spara som addnews.asp under roten på din webbplats och lägg till följande kod.
Lägg till nyhet
' Lägger till den nya posten till databasen
<% If Request.QueryString("alt") = "new" ThenDim Connect1
Dim Addera1
Dim RecSet1
Set Connect1 = Server.CreateObject("ADODB.Connection") ' Skapar ADO objekt
' Anslutnings sträng till Access databas.
Connect1.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\ny\db\news.mdb")
Set RecSet1 = Server.CreateObject("ADODB.Recordset") ' Skapar recordset objekt
Addera1 = "SELECT * FROM News"
' Lägger till den ny posten till recordsetet.
RecSet1.Open Addera1, Connect1, adOpenStatic, adLockOptimistic
RecSet1.AddNew
RecSet1("Rubrik") = Request.Form("Rubrik")
RecSet1("Text") = Request.Form("Text")
RecSet1("Date") = Date
RecSet1.Update
RecSet1.Close
Connect1.Close
%>
Posten är uppdaterad.
' Visar en sida där man fyller i nya uppgifterna
<% Else %>
Lägg till nyhet
Rubrik:
Text:
<% End If %>
Öppna sedan sidorna i din webbläsare och testa att lägga till en nyhet på adressen (localhost)/anndews.asp. Och läs sedan nyheterna på (localhost)/news.asp
Avslutningsvis
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas./Daniel Albertsson