Announcement

Collapse
No announcement yet.

Daten weren mehrfach angezeigt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten weren mehrfach angezeigt

    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

    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&uuml;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

  • #2
    Sieht so aus, als würde es reichen, wenn Du einfach die Schleife
    For Index = 0 To rstTable.Fields.Count - 1
    und das zu gehörige next wegläßt.
    Ich habs jetzt nur überflogen, Probier einfach mal , ob es klappt.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Ganz herzlichen Dank!
      Genau das war's.

      Gruss
      Tanja

      Comment

      Working...
      X