Doug Murphy
dw-murphy at cox.net
Fri Jul 27 18:27:21 CDT 2007
Hi Steve, I do this quite a bit. What I do is to create the skeleton of the html page in my html editor, Dream Weaver. I embed tags in the page where I want Access to insert specific current data, like the date the page was updated. The tag I use looks like an html comment, i.e., "<!-- Last Updated -->" The text part of the tag allows me to insert in that spot. I then use this file as a template. When I want to create a page I open the template file from Access and open a new file to output to. The routine then iterates trough the template file, inserting data where required and then outputting the lines to the output file. For this application the majority of the data goes into a table so I put a tag where the table goes and input data from a record set into the table with the appropriate table, table row and cell tags. I got the basic routine from some one on this list several years ago. The routine I use follows. ---Code follows--- Sub sWriteHTMLReport(strTemplateFile As String, strFinalReportFile As String, rst As DAO.Recordset) Dim intFFIn As Integer Dim intFFOut As Integer Dim strLine As String Dim iCount As Integer Dim sField As String 'Get Free File Handle for working with template.html intFFIn = FreeFile 'Open temp.htm for read only using Free File handle Open strTemplateFile For Input Access Read As #intFFIn 'Get Free File Handle for working with report.html ' report.html is the output file intFFOut = FreeFile 'Open report.html for writing Open strFinalReportFile For Output Access Write As #intFFOut 'Do 'Insert update date Do ' Read Line from template.html Input #intFFIn, strLine ' If Line = <!-- Last Updated --> then date goes here If strLine = "<!-- Last Updated -->" Then ' Exit Loop strLine = "<I>(Last Updated: " & Format(Date, "mmmm dd, yyyy") & ")</I>" ' If Line = <!-- Data Goes Here -> then ElseIf strLine = "<!-- Data Goes Here -->" Then ' Exit Loop Exit Do ' End If End If ' Write Line to report.html Print #intFFOut, strLine 'Loop While Not EOF ' just to make sure that you don't get errors if you Loop While Not (EOF(intFFIn)) 'forget to add the comment 'open Data recordset 'Recordset passed instead of opening her to make it a bit more generic 'Do Do ' Build OutPutString by iterating through the field collection and adding fields to the string strLine = "<TR>" For iCount = 0 To rst.Fields.Count - 1 'Check to see if the field is null and if so put in a Line break If IsNull(rst.Fields(iCount).Value) Then sField = "<BR>" Else sField = rst.Fields(iCount).Value End If strLine = strLine & "<TD>" & sField & "</TD>" Next iCount 'Trim off the last <TD> strLine = Mid(strLine, 1, Len(strLine) - 5) 'Add the end of row tag strLine = strLine & "</TD></TR>" ' write output string to report.html Print #intFFOut, strLine ' Move to Next Record rst.MoveNext 'loop while there are still records in the recordset Loop While Not (rst.EOF) 'do while not End Of template.html (the condition needs to go at the top in case you forgot to add the comment) Do While Not (EOF(intFFIn)) ' Read Line from template.html Input #intFFIn, strLine ' Write Line to report.html Print #intFFOut, strLine 'Loop Loop ' 'Close Report.html 'Close template.html Close End Sub ----End code---------- If you just want to insert a few pieces of data in specific locations you could just copy the template file into a string and use replace to locate the tags and insert the values. After inserting all data you would save the string to a new file. Hope this helps. I don't remember who helped me out, but am glad to share. Doug -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Steve Schapel Sent: Friday, July 27, 2007 2:04 PM To: Access Developers discussion and problem solving Subject: [AccessD] Creating HTML file Hi. I am just about to do something I have never tried before. I need to create a static web page from Access data. Using OutputTo from a report has too many problems. Using DoCmd.TransferText acExportHTML doesn't give me the formatting flexibility that I need. Therefore I've decided to try to loop through a recordset and build the html file in code. Main problem being that my html skills are minimal. Has anyone done this type of thing? Any tips? Thanks. Regards Steve -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com