Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM tblTextAdsTmp WHERE DefaultID=" & [Forms]![frmDefaults]![DefaultID] & " ORDER BY TextAdsID")
strYahooPreviousAdgroup = ""
rs.MoveFirst
strYahooCSV = ""
Do Until rs.EOF
'if not first record and adgroup is different to previous adgroup, then add adgroup header
If rs!Adgroup <> strYahooPreviousAdgroup Then
strYahooCSV = strYahooCSV & rs!Campaign & "," & "" & "," & "Campaign,On,Active,,,,,,," & rs!YahooSearchStatus & "," & rs!YahooMatchType & ",,,," & rs!YahooContentStatus & ",,,,,,,Off" & Chr(13) & Chr(10)
End If
'if not first record and adgroup is different to previous adgroup then add advert
YahooCounter = DCount("Adgroup", "tblTextAdsTmp", "Adgroup='" & rs!Adgroup & "' AND DefaultID=" & rs!DefaultID)
For i = 1 To YahooCounter
strYahooCSV = strYahooCSV & rs!Campaign & "," & rs!Adgroup & "," & "Ad,On,Active,,,,,,,,,,,,," & Int(100000 * Rnd(100000)) & "," & rs!Title & "," & rsLine1 & " " & rs!Line2 & ",," & rs!DisplayURL & rs!ActualURLYahoo & Chr(13) & Chr(10)
rs.MoveNext
Next i
strYahooCSV = strYahooCSV & "," & "," & rs!Campaign & "," & rs!Adgroup & "," & "Keyword,On,Active," & rs!Keyword & ",,,Default,,,," & rs!YahooMatchType & ",,,,,,,,,,,Off" & Chr(13) & Chr(10)
strYahooPreviousAdgroup = rs!Adgroup
rs.MoveNext
Loop