Hallo
Durch das Zusammenführen zweier Scripts bin ich fast auf das gewünschte Resultat gestossen.
Leider wird aber jede Datenzeile statt einmal 8x angezeigt. Ich nehme an, dass dies daran liegt, dass im Originalscript direkt die SQL-Abfrage an das Email übergeben wurde, und die Abfrage 8 Datenfelder abfragt.
Kann mir jemand sagen, wie das zu korrigieren ist?
Gruss
Tanja
Durch das Zusammenführen zweier Scripts bin ich fast auf das gewünschte Resultat gestossen.
Leider wird aber jede Datenzeile statt einmal 8x angezeigt. Ich nehme an, dass dies daran liegt, dass im Originalscript direkt die SQL-Abfrage an das Email übergeben wurde, und die Abfrage 8 Datenfelder abfragt.
Kann mir jemand sagen, wie das zu korrigieren ist?
Gruss
Tanja
Code:
Sub Process_BackupAuswertung() 'Das gestrige und heutige Datum auswählen GesternDatum=Date()-1 TodayDatum=Date() GesternDatum=year(GesternDatum)&Right("0"&Month(GesternDatum),2)&Right("0"&Day(GesternDatum),2) TodayDatum=year(TodayDatum)&Right("0"&Month(TodayDatum),2)&Right("0"&Day(TodayDatum),2) Dim objRS 'Hier wird die Tabelle mit den Backup Erfolgen ausgelesen. strBackup = "SELECT DISTINCT [client], [policy_name], [schedule_label], [success], [description], SUBString(CONVERT(varchar(8), [date]), 7, 2) + '. ' + SUBString(CONVERT(varchar(8), [date]), 5, 2) + '. ' + SUBString(CONVERT(varchar(8), [date]), 1, 4) AS realdate, SUBString(CONVERT(varchar(6), MIN(DISTINCT [start_time])), 1, 2) + ':' + SUBString(CONVERT(varchar(6), MIN(DISTINCT [start_time])), 3, 2) + ':' + SUBString(CONVERT(varchar(6), MIN(DISTINCT [start_time])), 5, 2) AS beginn, SUBString(CONVERT(varchar(6), MAX(DISTINCT [end_time])), 1, 2) + ':' + SUBString(CONVERT(varchar(6), MAX(DISTINCT [end_time])), 3, 2) + ':' + SUBString(CONVERT(varchar(6), MAX(DISTINCT [end_time])), 5, 2) AS endtime FROM [job], [job_status] WHERE job_status.status=job.status AND job.job_type=0 AND ([policy_name] IN ('win_alp','win_alp_s0014')) AND job.schedule_label NOT LIKE '-' AND [date] BETWEEN "&GesternDatum&" AND "&TodayDatum&" GROUP BY [date], [client], [policy_name], [schedule_label], [success], [description] ORDER BY [realdate] ASC, [client], [beginn], [policy_name], [schedule_label], [success] DESC, [description]; " 'Hier werden die ADO Daten geholt Set objRS = ExecuteSQL(strBackup) 'Falls Daten leer sind Meldung, dass keine Backups durchgeführt wurden. If (objRS.Eof and objRS.Bof ) Then strTable = strTable & ("<p><font size='2' face='arial'>Heute wurden keine Backups durchgeführt!</font>") 'Wenn die Daten nicht leer sind wird weiter gefahren. Else While Not objRS.Eof 'Hier werden alle entsprechenden Clients abgefragt. 'Jetzt erstell den Nachrichtenteil des Emails. strTable = FormatRecordset(objRs) Wend End If 'Jetzt wird das Email mit der HTML-Tabelle versandt. Call send_email("Auswertung", strTable) 'Die Variablen werden zurück gesetzt. Set objRS = Nothing End Sub Function FormatRecordset(rstTable) Dim strTable 'Hier wird die Tabelle als String formatiert Dim Index 'Index Zähler Dim intColIndex Dim col(3) 'Kolonne Backup Erfolg wird auf Inhalt überprüft. col(0)="#34D134" 'Für Success 0 = Farbe grün col(1)="#FFFF00" 'Für Success 1 = Farbe gelb col(2)="#FF0000" 'Für Success 2 = Farbe rot rstTable.MoveFirst 'Erstelle die Tabellentitel strTable = strTable & "<html>" strTable = strTable & "<body>" strTable = strTable & "<table border='1' cellpadding='0' cellspacing='0'>" 'Tabelle erstellen strTable = strTable & "<tr>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Client</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Policy</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Schedule</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Description</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Date</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Startzeit</font></th>" strTable = strTable & "<th bgcolor='#b9b9b9'><font size='2' face='arial'>Endzeit</font></th>" strTable = strTable & "</tr>" While (Not rstTable.EOF) 'Fahre durch alle entsprechenden Daten bis zum Ende. intColIndex = rstTable.Fields.Item("success").Value ' Das Feld success wird ausgelesen. if intColIndex <> "" then ' Überprüfung ob Feld nicht leer. if isNumeric(intColIndex) then intColIndex = cLng(intColIndex) else intColIndex = 0 ' Index der Standardfarbe end if else intColIndex = 0 ' Index der Standardfarbe end if if intColIndex < 0 OR intColIndex > UBound(col) then intColIndex = 0 ' Index der Standardfarbe strTable = strTable & "<tr>" For Index = 0 To rstTable.Fields.Count - 1 strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("client").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("policy_name").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("schedule_label").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("description").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("realdate").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("beginn").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "<td bgcolor="&"'"& col(intColIndex) &"'"&"><font face='arial' size='2'>" 'Hier wird der Tabellenhintergrund entsprechend eingefärbt. strTable = strTable & rstTable.Fields.Item("endtime").Value 'Feld auslesen strTable = strTable & "</font></td>" strTable = strTable & "</tr>" Next rstTable.MoveNext 'Wechselt zum nächsten Datensatz Wend strTable = strTable & "</table>" strTable = strTable & "</body>" strTable = strTable & "</html>" FormatRecordset = strTable End Function
Comment