<% Option Explicit %> Guest Book
 

Amaricar's Guest book


Sign the guest book
<% 'Dimension variables Dim adoCon 'Database Connection Variable Dim adoRec 'Database Recordset Variable Dim strAccessDB 'Holds the Access Database Name Dim strSQL 'Database query sring Dim strName 'Holds the Users name Dim strEmailAddress 'Holds the Users e-mail address Dim strCountry 'Holds the users country Dim strHomepage 'Holds the Users homepage Dim strComments 'Holds the Users comments Dim dtmEntryDate 'Holds the date the commnets where made Dim intRecordPositionPageNum 'Holds the record position Dim intRecordLoopCounter 'Loop counter for displaying the guestbook records Dim intTotalNumGuestbookEntries 'Holds the total number of records in the database Dim intTotalNumGuestbookPages 'Holds the total number of pages in the database Dim intLinkPageNum 'Holds the page number to be linked to 'Declare constants ' -------------------------- Change the following line to the number of entries you wish to have on each page ------------------------ Const intRecordsPerPage = 10 'Change this number to the amount of entries to be displayed on each page '------------------------------------------------------------------------------------------------------------------------------------- 'If this is the first time the page is displayed then the guestbook record position is set to page 1 If Request.QueryString("PagePosition") = "" Then intRecordPositionPageNum = 1 'Else the page has been displayed before so the guestbook record postion is set to the Record Position number Else intRecordPositionPageNum = CInt(Request.QueryString("PagePosition")) End If 'Initialise the strAccessDB variable with the name of the Access Database strAccessDB = "guestbook" 'Create a connection odject Set adoCon = Server.CreateObject("ADODB.Connection") Set adoRec = Server.CreateObject("ADODB.Recordset") 'Open connection to the database driver adoCon="DRIVER={Microsoft Access Driver (*.mdb)};" 'Open Connection to database adoCon = adoCon & "DBQ=" & server.mappath(strAccessDB) 'Initalise the strSQL variable with an SQL statement to query the database by selecting all tables ordered by the decending date strSQL = "SELECT * FROM tblComments ORDER BY Date DESC" 'Set the cursor type property of the record set to dynamic so we can naviagate through the record set adoRec.CursorType = 3 'Query the database adoRec.Open strSQL, adoCon 'If there are no rcords in the database display an error message If adoRec.EOF Then 'Tell the user there are no records to show Response.Write "There are no records in the guestbook database" Response.Write "
Please check back later" Response.End 'Display the guestbook Else 'Set the number of records to display on each page by the constant set at the top of the script adoRec.PageSize = intRecordsPerPage 'Get the guestbook record poistion to display from adoRec.AbsolutePage = intRecordPositionPageNum 'Count the number of enties in the guestbook database intTotalNumGuestbookEntries = adoRec.RecordCount 'Count the number of pages there are in the guestbook database calculated by the PageSize attribute set above intTotalNumGuestbookPages = adoRec.PageCount 'Display the HTML number number the total number of pages and total number of records in the guestbook database Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " ' Response.Write vbCrLf & " " ' Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" 'Response.Write vbCrLf & " Total number of entries is - " & intTotalNumGuestbookEntries & ". TotYou are in " & intTotalNumGuestbookPages & " page and your are on page number " & intRecordPositionPageNum Response.Write vbCrLf & " You are on page number " & intRecordPositionPageNum Response.Write vbCrLf & "
" ' Response.Write vbCrLf & "
" '-------- 'Display an HTML table with links to the other entries in the guestbook 'Response.Write vbCrLf & " " 'Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
" 'Response.Write vbCrLf & " " 'Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
" 'If there are more pages to display then add a title to the other pages If intRecordPositionPageNum > 1 or NOT adoRec.EOF Then Response.Write vbCrLf & " Page:  " End If 'If the guestbook page number is higher than page 1 then display a back link If intRecordPositionPageNum > 1 Then Response.Write vbCrLf & " << Prev " End If 'If there are more pages to display then display links to all the pages If intRecordPositionPageNum > 1 or NOT adoRec.EOF Then 'Display a link for each page in the guestbook For intLinkPageNum = 1 to intTotalNumGuestbookPages 'If the page to be linked to is the page displayed then don't make it a hyper-link If intLinkPageNum = intRecordPositionPageNum Then Response.Write vbCrLf & " " & intLinkPageNum Else Response.Write vbCrLf & "  " & intLinkPageNum & " " End If Next End If 'If it is Not the End of the guestbook entries then display a next link for the next guestbook page If NOT adoRec.EOF then Response.Write vbCrLf & "  Next >>" End If 'Finsh HTML the table Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" 'For....Next Loop to display records from the guestbook database For intRecordLoopCounter = 1 to intRecordsPerPage 'If there are no guestbook records left to display then exit loop If adoRec.EOF Then Exit For 'Read in the values form the database strName = adoRec("Name") strCountry = adoRec("Country") strEmailAddress = adoRec("EMail") dtmEntryDate = CDate(adoRec("Date")) strHomepage = adoRec("Homepage") strComments = adoRec("Comments") 'If there is no homepage entry to display the display no URL given If strHomepage = "http://" then strHomepage = "No URL given" 'Else turn the URL stored in the strHomepage variable into a hyperlink Else strHomepage = "" & strHomepage & "" End If 'Write the HTML to the web browser to display the guestbook entries Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
" Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
Comments by " & strName & "" & " on " & FormatDateTime(dtmEntryDate, VbLongDate) & " at " & FormatDateTime(dtmEntryDate, VbShortTime) & "
Comments : " & strComments & "
Country :" & strCountry & "Website :" & strHomepage & "
" Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" 'Move to the next record in the database adoRec.MoveNext 'Loop back round Next End If 'Display an HTML table with links to the other entries in the guestbook Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
" Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & " " Response.Write vbCrLf & "
" 'If there are more pages to display then add a title to the other pages If intRecordPositionPageNum > 1 or NOT adoRec.EOF Then Response.Write vbCrLf & " Page:  " End If 'If the guestbook page number is higher than page 1 then display a back link If intRecordPositionPageNum > 1 Then Response.Write vbCrLf & " << Prev " End If 'If there are more pages to display then display links to all the pages If intRecordPositionPageNum > 1 or NOT adoRec.EOF Then 'Display a link for each page in the guestbook For intLinkPageNum = 1 to intTotalNumGuestbookPages 'If the page to be linked to is the page displayed then don't make it a hyper-link If intLinkPageNum = intRecordPositionPageNum Then Response.Write vbCrLf & " " & intLinkPageNum Else Response.Write vbCrLf & "  " & intLinkPageNum & " " End If Next End If 'If it is Not the End of the guestbook entries then display a next link for the next guestbook page If NOT adoRec.EOF then Response.Write vbCrLf & "  Next >>" End If 'Finsh HTML the table Response.Write vbCrLf & "
" Response.Write vbCrLf & "
" 'Reset Server Variables Set adoCon = Nothing Set adoRec = Nothing Session.Abandon %>