| Line-No. / Ref. | Code Line |
| 0001 | Public Function AddReading_List(Note_Title, tsTextFile As TextStream, Optional DirectoryLevel, Optional PrintQualityTitle) |
| 0002 | Dim rsNotesLinks As Recordset |
| 0003 | Dim strControlQuery As String |
| 0004 | Dim rsTableControl2 As Recordset |
| 0005 | Dim strLine As String |
| 0006 | Dim x As Long |
| 0007 | Dim Y As String |
| 0008 | Dim z As Long |
| 0009 | Dim strLink As String |
| 0010 | Dim BackLevel As String |
| 0011 | Dim strAbstractQualityQuery As String |
| 0012 | Dim rsAbstractQuality As Recordset |
| 0013 | Dim strIcon As String |
| 0014 | Dim strAlt As String |
| 0015 | Dim strTitle As String |
| 0016 | Y = Replace(Note_Title, """", """""") |
| 0017 | strControlQuery = "SELECT [Sub-Topics].[Sub-Topic] FROM [Sub-Topics] WHERE ((([Sub-Topics].[Sub-Topic])=""" & Y & """));" |
| 0018 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0019 | If rsTableControl2.EOF Then |
| 0020 | strControlQuery = "Citations_List_Short" |
| 0021 | Else |
| 0022 | strControlQuery = "Citations_List" |
| 0023 | 'Note: this cascade of queries selects (inter alia) on the priority of the papers and books (based on their depth in the Note hierarchy), and low priority items are ignored ... so, if expected books / papers don't appear, this may be why! |
| 0024 | End If |
| 0025 | Set rsTableControl2 = Nothing |
| 0026 | If IsMissing(DirectoryLevel) Then |
| 0027 | BackLevel = "../../../" |
| 0028 | Else |
| 0029 | BackLevel = "../../" |
| 0030 | End If |
| 0031 | Set rsNotesLinks = CurrentDb.OpenRecordset(strControlQuery) |
| 0032 | If Not rsNotesLinks.EOF Then |
| 0033 | ' ... Header |
| 0034 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Reading_List"") And ((Website_Control.Section) = ""Header"")) ORDER BY Website_Control.Line;" |
| 0035 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0036 | rsTableControl2.MoveFirst |
| 0037 | Do While Not rsTableControl2.EOF |
| 0038 | strLine = rsTableControl2.Fields(0) & "" |
| 0039 | tsTextFile.WriteLine strLine |
| 0040 | rsTableControl2.MoveNext |
| 0041 | Loop |
| 0042 | ' ... Rows .. Headings |
| 0043 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Reading_List"") And ((Website_Control.Section) = ""Rows"")) ORDER BY Website_Control.Line;" |
| 0044 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0045 | rsTableControl2.MoveFirst |
| 0046 | rsNotesLinks.MoveFirst |
| 0047 | Do While Not rsTableControl2.EOF |
| 0048 | strLine = rsTableControl2.Fields(0) & "" |
| 0049 | x = InStr(1, strLine, "**Column") |
| 0050 | If x > 0 Then |
| 0051 | z = Val(Mid(strLine, x + 8, 2)) |
| 0052 | Y = "" & rsNotesLinks.Fields(z - 1).Name & "" |
| 0053 | If Y = "" Then |
| 0054 | Y = "." |
| 0055 | End If |
| 0056 | strLine = Left(strLine, x - 1) & Y & Mid(strLine, x + 12, Len(strLine)) |
| 0057 | tsTextFile.WriteLine strLine |
| 0058 | End If |
| 0059 | rsTableControl2.MoveNext |
| 0060 | Loop |
| 0061 | 'Rows |
| 0062 | rsTableControl2.MoveFirst |
| 0063 | Do While Not rsNotesLinks.EOF |
| 0064 | Do While Not rsTableControl2.EOF |
| 0065 | strLine = rsTableControl2.Fields(0) & "" |
| 0066 | x = InStr(1, strLine, "**Column") |
| 0067 | If x > 0 Then |
| 0068 | z = Val(Mid(strLine, x + 8, 2)) |
| 0069 | Y = rsNotesLinks.Fields(z - 1).Value & "" |
| 0070 | 'Hyperlink |
| 0071 | If z = 3 Then |
| 0072 | strAbstractQualityQuery = "" |
| 0073 | If Left(Y, 4) = "Book" Then |
| 0074 | strLink = "BookSummaries/BookSummary_" & Mid(Trim(rsNotesLinks.Fields(7).Value + 100000), 2, 2) & "/BookPaperAbstracts/BookPaperAbstracts_" & rsNotesLinks.Fields(7).Value & ".htm"">" |
| 0075 | If rsNotesLinks.Fields(9).Value = "No" Then |
| 0076 | Else |
| 0077 | strAbstractQualityQuery = "SELECT "" "" AS [Image] FROM Quality_Markers INNER JOIN Books ON Quality_Markers.Quality = Books.Abstract_Quality WHERE (((Books.ID1)=" & rsNotesLinks.Fields(7) & "));" |
| 0078 | Set rsAbstractQuality = CurrentDb.OpenRecordset(strAbstractQualityQuery) |
| 0079 | If Not rsAbstractQuality.EOF Then |
| 0080 | rsAbstractQuality.MoveFirst |
| 0081 | strAbstractQualityQuery = rsAbstractQuality.Fields(0).Value & "" |
| 0082 | Else |
| 0083 | strAbstractQualityQuery = "" |
| 0084 | End If |
| 0085 | Set rsAbstractQuality = Nothing |
| 0086 | End If |
| 0087 | Else |
| 0088 | If rsNotesLinks.Fields(10).Value = "No" Then |
| 0089 | strLink = "PaperSummaries/PaperSummary_" & Mid(Trim(rsNotesLinks.Fields(8).Value + 100000), 2, 2) & "/PaperSummary_" & rsNotesLinks.Fields(8).Value & ".htm"">" |
| 0090 | Else |
| 0091 | strAbstractQualityQuery = "SELECT Quality_Markers.Display_Text, Quality_Markers.Icon, Quality_Markers.Annotations FROM Quality_Markers INNER JOIN Papers ON Quality_Markers.Quality = Papers.Abstract_Quality WHERE (((Papers.ID)=" & rsNotesLinks.Fields(8) & "));" |
| 0092 | Set rsAbstractQuality = CurrentDb.OpenRecordset(strAbstractQualityQuery) |
| 0093 | If Not rsAbstractQuality.EOF Then |
| 0094 | rsAbstractQuality.MoveFirst |
| 0095 | strAlt = rsAbstractQuality.Fields(0).Value & "" |
| 0096 | strIcon = rsAbstractQuality.Fields(1).Value & "" |
| 0097 | strTitle = rsAbstractQuality.Fields(2).Value & "" |
| 0098 | strAbstractQualityQuery = " " |
| 0099 | If IsMissing(PrintQualityTitle) Then |
| 0100 | Else |
| 0101 | If strTitle <> "" Then |
| 0102 | strAbstractQualityQuery = strAbstractQualityQuery & " (" & strTitle & ")" |
| 0103 | End If |
| 0104 | End If |
| 0105 | Else |
| 0106 | strAbstractQualityQuery = "" |
| 0107 | End If |
| 0108 | Set rsAbstractQuality = Nothing |
| 0109 | strLink = "Abstracts/Abstract_" & Mid(Trim(rsNotesLinks.Fields(8).Value + 100000), 2, 2) & "/Abstract_" & rsNotesLinks.Fields(8).Value & ".htm"">" |
| 0110 | End If |
| 0111 | End If |
| 0112 | Y = " " & strAbstractQualityQuery |
| 0113 | End If |
| 0114 | If Y = "" Then |
| 0115 | Y = " " |
| 0116 | End If |
| 0117 | strLine = Left(strLine, x - 1) & Y & Mid(strLine, x + 12, Len(strLine)) |
| 0118 | tsTextFile.WriteLine strLine |
| 0119 | Else |
| 0120 | tsTextFile.WriteLine strLine |
| 0121 | End If |
| 0122 | rsTableControl2.MoveNext |
| 0123 | Loop |
| 0124 | rsNotesLinks.MoveNext |
| 0125 | rsTableControl2.MoveFirst |
| 0126 | Loop |
| 0127 | ' ... Footer |
| 0128 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Reading_List"") And ((Website_Control.Section) = ""Footer"")) ORDER BY Website_Control.Line;" |
| 0129 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0130 | rsTableControl2.MoveFirst |
| 0131 | Do While Not rsTableControl2.EOF |
| 0132 | strLine = rsTableControl2.Fields(0) & "" |
| 0133 | tsTextFile.WriteLine strLine |
| 0134 | rsTableControl2.MoveNext |
| 0135 | Loop |
| 0136 | End If |
| 0137 | End Function |
| Line-No. / Ref. | Code Line |
| 0001 | Public Sub CreateConcatenatedNoteGroupWebPages() |
| 0002 | 'This is a new module to generate the pages that list all the Notes (in Title sequence) in a selected Notes-Group |
| 0003 | 'It was based on Sub CreateBookPaperAbstractsWebPages |
| 0004 | 'Earlier versions used to print the Note text, but the resulting pages got far too large. |
| 0005 | Dim fsoTextFile As FileSystemObject |
| 0006 | Dim rsTableToRead As Recordset |
| 0007 | Dim rsTableControl As Recordset |
| 0008 | Dim rsTableControl2 As Recordset |
| 0009 | Dim rsNotesLinks As Recordset |
| 0010 | Dim strControlQuery As String |
| 0011 | Dim strLine As String |
| 0012 | Dim iTableColumns As Integer |
| 0013 | Dim x As Long |
| 0014 | Dim Y As String |
| 0015 | Dim i As Long |
| 0016 | Dim strFileSuffix As String |
| 0017 | Dim strFileBody As String |
| 0018 | Dim StartTime As Double |
| 0019 | Dim strText As String |
| 0020 | Dim iDepth As Integer |
| 0021 | Dim strNoteGroup As String |
| 0022 | Dim iNotes_Title_Index As Integer |
| 0023 | Dim strNotesTitle_Saved As String |
| 0024 | Dim FootNoteTimestamp As Single |
| 0025 | Dim strDirectory As String |
| 0026 | Dim TextColour As Integer |
| 0027 | Dim RunTime As Single |
| 0028 | Dim strControlTable_Saved As String |
| 0029 | Dim Time_Stamp As String |
| 0030 | 'Update the Notes_Group "Last Concatenated" Timestamp |
| 0031 | Set rsTableToRead = CurrentDb.OpenRecordset("Select Latest_Concatenation, Time_To_Concatenate, Narrative FROM Note_Groups WHERE ID = " & Notes_Group_ID & ";") |
| 0032 | rsTableToRead.MoveFirst |
| 0033 | Notes_Group_Narrative = rsTableToRead.Fields(2) & "" |
| 0034 | rsTableToRead.Edit |
| 0035 | rsTableToRead.Fields(0) = Now() |
| 0036 | rsTableToRead.Update |
| 0037 | Set fsoTextFile = New FileSystemObject |
| 0038 | strFolder = strOutputFolder |
| 0039 | StartTime = Now() |
| 0040 | iDepth = 1 |
| 0041 | 'Read the data |
| 0042 | Set rsTableToRead = CurrentDb.OpenRecordset(strDataQuery) |
| 0043 | 'Find the Note Group |
| 0044 | If Not rsTableToRead.EOF Then |
| 0045 | rsTableToRead.MoveFirst |
| 0046 | strNoteGroup = rsTableToRead.Fields(0) & "" |
| 0047 | End If |
| 0048 | strFileSuffix = strOutputFileShort |
| 0049 | If Notes_Group_ID = 10 Then |
| 0050 | strFileBody = "Secure_Jen/" |
| 0051 | Else |
| 0052 | strFileBody = "Notes/" |
| 0053 | End If |
| 0054 | 'Create File |
| 0055 | Set tsTextFile = fsoTextFile.CreateTextFile(strOutputFolder & strFileBody & "\" & strFileSuffix & ".htm", True, True) |
| 0056 | 'Page Header |
| 0057 | strControlTable_Saved = strControlTable |
| 0058 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = """ & strControlTable & """) And ((Website_Control.Section) = ""Header"")) ORDER BY Website_Control.Line;" |
| 0059 | Set rsTableControl = CurrentDb.OpenRecordset(strControlQuery) |
| 0060 | rsTableControl.MoveFirst |
| 0061 | Do While Not rsTableControl.EOF |
| 0062 | strLine = rsTableControl.Fields(0) & "" |
| 0063 | i = InStr(strLine, "**TOPIC**") |
| 0064 | If i > 0 Then |
| 0065 | strLine = Left(strLine, i - 1) & strNoteGroup & Mid(strLine, i + Len("**TOPIC**")) |
| 0066 | End If |
| 0067 | tsTextFile.WriteLine strLine |
| 0068 | rsTableControl.MoveNext |
| 0069 | Loop |
| 0070 | 'Output Jump Table |
| 0071 | strControlTable = "Jump_Table_Titles_Notes" |
| 0072 | strTargetFileShort = "Notes" |
| 0073 | strDataQuery = "Notes_Jump" |
| 0074 | strSplitTable = "Yes" |
| 0075 | Notes_Recent = 0 |
| 0076 | JumpTableTitles ("Concatenated") |
| 0077 | 'Output the Notes (links + stats) |
| 0078 | If Not rsTableToRead.EOF Then |
| 0079 | rsTableToRead.MoveFirst |
| 0080 | iTableColumns = rsTableToRead.Fields.Count |
| 0081 | Do Until rsTableToRead.EOF |
| 0082 | 'Add name for internal hyperlink |
| 0083 | strLine = "" |
| 0084 | tsTextFile.WriteLine strLine |
| 0085 | 'Note Headers |
| 0086 | strText = "" |
| 0087 | TextColour = 0 |
| 0088 | strLine = " " |
| 0089 | tsTextFile.WriteLine strLine |
| 0090 | For i = 3 To iTableColumns - 2 |
| 0091 | If rsTableToRead.Fields(i) & "" <> "" Then |
| 0092 | strLine = " " & rsTableToRead.Fields(i).Name & ": " & rsTableToRead.Fields(i) & " " |
| 0093 | tsTextFile.WriteLine strLine |
| 0094 | End If |
| 0095 | Next i |
| 0096 | 'Add count of reading list |
| 0097 | 'Clear the Notes usage table |
| 0098 | DoCmd.RunSQL ("DELETE Note_Usage_Temp.* FROM Note_Usage_Temp;") |
| 0099 | 'Prepopulate with the main note |
| 0100 | strLine = "SELECT Note_Usage_Temp.* FROM Note_Usage_Temp;" |
| 0101 | Set rsTableControl = CurrentDb.OpenRecordset(strLine) |
| 0102 | strLine = "" |
| 0103 | rsTableControl.AddNew |
| 0104 | rsTableControl.Fields(0) = rsTableToRead.Fields(2).Value |
| 0105 | rsTableControl.Fields(1) = "Main Text" |
| 0106 | rsTableControl.Fields(4) = iDepth |
| 0107 | rsTableControl.Update |
| 0108 | Set rsTableControl = CurrentDb.OpenRecordset("Citations_Count") |
| 0109 | If Not rsTableControl.EOF Then |
| 0110 | rsTableControl.MoveFirst |
| 0111 | strLine = " Citation Counts: |
| 0112 | Do While Not rsTableControl.EOF |
| 0113 | strLine = strLine & "" & rsTableControl.Fields(0).Value & ": " & rsTableControl.Fields(1).Value & "" |
| 0114 | rsTableControl.MoveNext |
| 0115 | Loop |
| 0116 | strLine = strLine & "" |
| 0117 | End If |
| 0118 | Set rsTableControl = Nothing |
| 0119 | tsTextFile.WriteLine strLine |
| 0120 | 'Used to print the Note text here! |
| 0121 | 'Add the "Links to this Webpage" |
| 0122 | iNotes_Title_Index = 1 |
| 0123 | strControlQuery = "SELECT Note_Links.Note_1, Note_Links.Note_1_Ref, Notes.Item_Title, Notes.Note_Group, Notes_1.Note_Group FROM (Note_Links INNER JOIN Notes ON Note_Links.Note_1 = Notes.ID) INNER JOIN Notes AS Notes_1 ON Note_Links.Note_2 = Notes_1.ID WHERE (((Note_Links.Note_2) = " & rsTableToRead.Fields(2) & ")) ORDER BY Notes.Item_Title;" |
| 0124 | Set rsNotesLinks = CurrentDb.OpenRecordset(strControlQuery) |
| 0125 | If Not rsNotesLinks.EOF Then |
| 0126 | strLine = "
Links to this page (" & rsTableToRead.Fields(3) & ") " |
| 0127 | tsTextFile.WriteLine strLine |
| 0128 | 'Title-based jump table |
| 0129 | ' ... Header |
| 0130 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Jump_Table_Titles_Concatenated"") And ((Website_Control.Section) = ""Header"")) ORDER BY Website_Control.Line;" |
| 0131 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0132 | rsTableControl2.MoveFirst |
| 0133 | Do While Not rsTableControl2.EOF |
| 0134 | strLine = rsTableControl2.Fields(0) & "" |
| 0135 | tsTextFile.WriteLine strLine |
| 0136 | rsTableControl2.MoveNext |
| 0137 | Loop |
| 0138 | ' ... Rows |
| 0139 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Jump_Table_Titles"") And ((Website_Control.Section) = ""Rows"")) ORDER BY Website_Control.Line;" |
| 0140 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0141 | rsTableControl2.MoveFirst |
| 0142 | rsNotesLinks.MoveFirst |
| 0143 | Do While (Not rsTableControl2.EOF Or Not rsNotesLinks.EOF) |
| 0144 | If rsTableControl2.EOF Then |
| 0145 | rsTableControl2.MoveFirst |
| 0146 | End If |
| 0147 | strLine = rsTableControl2.Fields(0) & "" |
| 0148 | x = InStr(1, strLine, "**Column") |
| 0149 | If x > 0 Then |
| 0150 | If Not rsNotesLinks.EOF Then |
| 0151 | If rsNotesLinks.Fields(2) = strNotesTitle_Saved Then |
| 0152 | iNotes_Title_Index = iNotes_Title_Index + 1 |
| 0153 | Else |
| 0154 | iNotes_Title_Index = 1 |
| 0155 | strNotesTitle_Saved = rsNotesLinks.Fields(2) |
| 0156 | End If |
| 0157 | FootNoteTimestamp = 0 |
| 0158 | 'Determine if across secure area |
| 0159 | strDirectory = "" |
| 0160 | If rsNotesLinks.Fields(3) <> 10 Then |
| 0161 | strDirectory = "../Notes/" |
| 0162 | Else |
| 0163 | strDirectory = "../Secure_Jen/" |
| 0164 | End If |
| 0165 | Y = " 0, "_" & FootNoteTimestamp, "") & ".htm" & IIf(rsNotesLinks.Fields(1) <> 0, "#" & rsNotesLinks.Fields(1), "") & """>" & rsNotesLinks.Fields(2) & IIf(iNotes_Title_Index > 1, " (" & iNotes_Title_Index & ")", "") & "" |
| 0166 | Else |
| 0167 | Y = "." |
| 0168 | End If |
| 0169 | strLine = Left(strLine, x - 1) & Y & Mid(strLine, x + 10, Len(strLine)) |
| 0170 | If Not rsNotesLinks.EOF Then |
| 0171 | rsNotesLinks.MoveNext |
| 0172 | End If |
| 0173 | tsTextFile.WriteLine strLine |
| 0174 | Else |
| 0175 | tsTextFile.WriteLine strLine |
| 0176 | End If |
| 0177 | rsTableControl2.MoveNext |
| 0178 | Loop |
| 0179 | ' ... Footer |
| 0180 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = ""Jump_Table_Titles_Concatenated"") And ((Website_Control.Section) = ""Footer"")) ORDER BY Website_Control.Line;" |
| 0181 | Set rsTableControl2 = CurrentDb.OpenRecordset(strControlQuery) |
| 0182 | rsTableControl2.MoveFirst |
| 0183 | Do While Not rsTableControl2.EOF |
| 0184 | strLine = rsTableControl2.Fields(0) & "" |
| 0185 | tsTextFile.WriteLine strLine |
| 0186 | rsTableControl2.MoveNext |
| 0187 | Loop |
| 0188 | End If |
| 0189 | 'Next Record |
| 0190 | rsTableToRead.MoveNext |
| 0191 | Loop |
| 0192 | End If |
| 0193 | 'Write the Footer |
| 0194 | strLine = " " |
| 0195 | tsTextFile.WriteLine strLine |
| 0196 | strControlQuery = "SELECT Website_Control.Line_Value FROM Website_Control WHERE (((Website_Control.Web_Page) = """ & strControlTable_Saved & """) And ((Website_Control.Section) = ""Footer"")) ORDER BY Website_Control.Line;" |
| 0197 | Set rsTableControl = CurrentDb.OpenRecordset(strControlQuery) |
| 0198 | rsTableControl.MoveFirst |
| 0199 | Do While Not rsTableControl.EOF |
| 0200 | Time_Stamp = rsTableControl.Fields(0) & "" |
| 0201 | OK = Replace_Timestamp(Time_Stamp) |
| 0202 | tsTextFile.WriteLine Time_Stamp |
| 0203 | rsTableControl.MoveNext |
| 0204 | Loop |
| 0205 | RunTime = Round((Now() - StartTime) * 24 * 60, 1) |
| 0206 | 'Update the Notes_Group "Last Concatenated" Timestamp |
| 0207 | Set rsTableToRead = CurrentDb.OpenRecordset("Select Latest_Concatenation, Time_To_Concatenate FROM Note_Groups WHERE ID = " & Notes_Group_ID & ";") |
| 0208 | rsTableToRead.MoveFirst |
| 0209 | rsTableToRead.Edit |
| 0210 | rsTableToRead.Fields(0) = Now() |
| 0211 | rsTableToRead.Fields(1) = RunTime |
| 0212 | rsTableToRead.Update |
| 0213 | OK = CopyToTransfer(strFolder & strFileBody & "\", strFileSuffix & ".htm") |
| 0214 | Set tsTextFile = Nothing |
| 0215 | Set rsTableToRead = Nothing |
| 0216 | Set rsTableControl = Nothing |
| 0217 | Set rsTableControl2 = Nothing |
| 0218 | Set rsNotesLinks = Nothing |
| 0219 | If automatic_processing <> "Yes" Then |
| 0220 | MsgBox strOutputFile & "Concatenated Note Group Web Page """ & strNoteGroup & """ Creation Complete, in " & RunTime & " minutes.", vbOKOnly, "Create Books To Papers Links" |
| 0221 | End If |
| 0222 | End Sub |