Teil 2: RSS-Newsfeeds mit Access erstellen

Die Daten abrufen

Um die Daten abzurufen, müssen Sie im Prinzip nichts weiter tun, als eine geeignete SQL-Anweisung auszuführen und dann die Daten zu durchlaufen. Für jeden Datensatz erzeugen Sie dann die Einträge im Channel- und im About-Block der Datei.

Im einfachsten Fall genügt eine einfache Funktion getInhalt, um die Daten aus der Datenbank abzurufen und als XML-Text zurückzugeben. Diesen brauchen Sie dann nur noch an den letzten Parameter der Prozedur RSSDateischreiben übergeben.

Innerhalb der Funktion getInhalt (Listing 1) deklarieren Sie dazu zunächst die notwendigen Variablen. Die wichtigste ist die Variable objRS, die das Recordset speichert.

Function getInhalt() As String
Dim strSQL As String
Dim objRS As ADODB.Recordset
Dim strTemp As String
Dim strListe As String

strTemp = ""
strListe = ""
Set objRS = New ADODB.Recordset
strSQL = "SELECT * FROM tabNachrichten"
objRS.Open strSQL, Application.CodeProject.Connection, adOpenStatic
If objRS.RecordCount > 0 Then
Do While objRS.EOF = False
If Not (objRS.Fields("Link").Value = Empty) Then
strTemp = strTemp & "<item rdf:about=""" & objRS.Fields("ID").Value & """>" & vbCrLf
strTemp = strTemp & "<link>" & objRS.Fields("Link").Value & "</link>" & vbCrLf
strListe = strListe & "<rdf:li resource=""" & objRS.Fields("ID").Value & """/>" & vbCrLf
Else
strTemp = strTemp & "<item rdf:about=""" & objRS.Fields("ID").Value & """>" & vbCrLf
strListe = strListe & "<rdf:li resource=""" & objRS.Fields("ID").Value & """/>" & vbCrLf
End If
strTemp = strTemp & "<title>" & objRS.Fields("Titel").Value & "</title>" & vbCrLf
strTemp = strTemp & "<description>" & objRS.Fields("Inhalt").Value & "</description>" & vbCrLf
strTemp = strTemp & "</item>" & vbCrLf
objRS.MoveNext
Loop
End If
objRS.Close
Set objRS = Nothing
strListe = "<items>" & vbCrLf & "<rdf:Seq>" & vbCrLf & strListe & "</rdf:Seq>" & vbCrLf & "</items>" & vbCrLf & "</channel>" & vbCrLf
getInhalt = strListe & strTemp
End Function