21. juni 2007 - 10:24Der er
8 kommentarer og 1 løsning
udskrive TOP 10 recordset i nyhedsmail
Hejsa
Jeg har et nyhedsmailmodul som udsender mails til nogle bestemt udvalgte i en db. I den mail vil jeg gerne have en liste med den pågælende brugers sidste 10 indbetalinger.
Jeg har følgende kode, som desværre ikke virker: -----------------------------------------------
strSQL = "SELECT tbl_user.navn,tbl_user.login_id,email,konto_ialt from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id" Set res = Conn.Execute(strSQL)
Query= " SELECT TOP 10 * from tbl_indb where login_id=" & res("login_id") Set ResInd = Conn.Execute(Query)
do while not res.eof
dato = left(dateadd("d", 14, now()),10)
Set objMail = Server.CreateObject("JMail.SMTPMail") objMail.Silent = True objMail.ServerAddress = "-" objMail.Sender = "mail" objMail.Subject = "faktura" objMail.AddRecipient res("email") objMail.HTMLBody = "<html><head><title></title></head><body vlink='#666666' link='#000000' bgcolor='#ffffff'>Hej " & res("navn") &"<p>Dette er din faktura fra denne måned. <p><b>Din saldo: " & res("konto_ialt") &" kr.</b><p>Beløbet bedes indbetalt senest den " & dato &" på følgende konto:<p>Reg: xxxx Konto: xxxxxxxxxxxx<p>Dine seneste indbetalinger:<p><table><tr><td>Dato</td><td>Beløb</td></tr>" & do while not ResInd.EOF &"<tr><td>" & ResInd("dato") &"</td><td>" & ResInd("beloeb") &""& ResInd.MoveNext loop &"<p>Tak for din deltagelse <p>Med venlig hilsen<p><p>-</body></html>"
objMail.execute set objMail = nothing Res.MoveNext loop
resInd.close set resInd = nothing res.close set res = nothing ------------------------------------- Inde i HTML body har jeg et loop. Kan man ikke det?
strSQL = "SELECT tbl_user.navn,tbl_user.login_id,email,konto_ialt from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id" Set res = Conn.Execute(strSQL)
Query= "SELECT TOP 10 * from tbl_indb where login_id=" & res("login_id") Set ResInd = Conn.Execute(Query)
Du kan ikke lave en løkke inde midt en strengsammensætning på denne måde, du er nød til at lave strengsammensætningen inden du tildeler strengen til HTMLBody. Desuden skal du nok lave dit inderste opslag inde i den første løkke, ellers har du ikke det rigtige id at slå op med. Jeg vil tro følgende vil fungere bedre:
strSQL = "SELECT tbl_user.navn,tbl_user.login_id,email,konto_ialt from tbl_user,tbl_konto where konto_ialt <> 0 and tbl_user.login_id = tbl_konto.login_id" Set res = Conn.Execute(strSQL)
Query= " SELECT TOP 10 * from tbl_indb where login_id=" & res("login_id") Set ResInd = Conn.Execute(Query)
body = "<html><head><title></title></head><body vlink='#666666' link='#000000' bgcolor='#ffffff'>Hej " & res("navn") &"<p>Dette er din faktura fra denne måned. <p><b>Din saldo: " & res("konto_ialt") &" kr.</b><p>Beløbet bedes indbetalt senest den " & dato &" på følgende konto:<p>Reg: xxxx Konto: xxxxxxxxxxxx<p>Dine seneste indbetalinger:<p><table><tr><td>Dato</td><td>Beløb</td></tr>"
do while not ResInd.EOF body = body & "<tr><td>" & ResInd("dato") &"</td><td>" & ResInd("beloeb") ResInd.MoveNext loop
body = body & "<p>Tak for din deltagelse <p>Med venlig hilsen<p><p>-</body></html>"
objMail.HTMLBody = body
resInd.close set resInd = nothing
objMail.execute set objMail = nothing Res.MoveNext loop
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.