Dom, le webmaster du site Deltaplane en France, propose à ses visiteurs de recevoir par E-mail le classement sélectif national au format Text ou Excel... les informations sont issues d'une base de données et le résultat de la requête de tri est stocké dans un fichier sur le serveur qui est ensuite envoyé en Pièces Jointes au demandeur via ASPMail.
Pour être compatible Excel le fichier doit, outre son extension (.slk), avoir la structure suivante :
ID;PWXL;N;E Début du codage C;Y1;X1;K"Libellé" les guillemets seront codés avec chr(34) C;Y1;X2;Knombre ... etc E Fin du codage
Pour voir fonctionner le script ci-dessous, sympathiquement envoyé à notre rédaction, allez sur le site Deltaplane en France, menu Comp. Nationales
classement_excel.asp
<% ' Script de Dom - webmaster@domchauvet.com ' actif sur http://www.domchauvet.com/delta
Action = Left(UCase(Request("Action")),5) If Action = "RECEV" Then ' Arrivée du formulaire
' 1. Mémorisation de l'adresse E-mail dans un cookie
Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.Open "nom_de_la_base" SQLQuery = "SELECT nom,prénom,total,rang FROM nom_de_la_table " _ & "WHERE total > 0 ORDER BY total DESC " Set RS = OBJdbConnection.Execute(SQLQuery)
' 3. Création du fichier
Set FSO = Server.CreateObject("Scripting.FileSystemObject") dim dir : dir = Server.MapPath("/images") set inF = FSO.CreateTextFile(dir & "\" & Request("type"))
' Fichier au format Excel (.slk) if right(Request("type"),3)="slk" then inF.writeLine"ID;PWXL;N;E" ' Début du codage excel ' chr (34) remplace les guillements à la suite de l'instruction inF.writeLine"C;Y1;X1;K"&chr(34)&("PLACE")&chr(34) inF.writeLine"C;Y1;X2;K"&chr(34)&("NOM")&chr(34) inF.writeLine"C;Y1;X3;K"&chr(34)&("PRENOM")&chr(34) inF.writeLine"C;Y1;X4;K"&chr(34)&("POINTS")&chr(34) i=2 ' Affichage à partir de la ligne 2 While Not rs.eof inF.writeLine"C;Y"&(""&i&";X1;K")&(rs("Rang")) inF.writeLine"C;Y"&(""&i&";X2;K")&chr(34)&(rs("Nom"))&chr(34) inF.writeLine"C;Y"&(""&i&";X3;K")&chr(34)&(rs("Prénom"))&chr(34) inF.writeLine"C;Y"&(""&i&";X4;K")&(rs("TOTAL")) i=i+1 Rs.MoveNext wend inF2.writeLine"E" ' Fin du codage excel
' ou fichier au format texte (.txt) else inF.writeLine("Rang"&";"&"Nom"&";"&"Prénom"&";"&"Points") While Not rs.eof inF.writeLine(rs("Rang")&";"&rs("Nom")&";"&rs("Prénom")&";"&rs("TOTAL")&";") Rs.MoveNext wend end if inF.close
' 4. Fermeture de la connexion à la BD
RS.close : set RS = nothing OBJdbConnection.close : set OBJdbConnection = nothing
' 5. Envoi du fichier par ASPMail
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "DomChauvet" Mailer.FromAddress= "webmaster@domchauvet.com" Mailer.RemoteHost = "SMTP.domchauvet.com" Mailer.AddRecipient Request("Mail"), Request("Mail") Mailer.AddAttachment dir&"\"&Request("type") Mailer.Organization = "Site Deltaplane" Mailer.Subject = "Le classement des sélectives" strBody = "Voici le classement des sélectives à ce jour." & VbCrLf strBody = strBody & "Nom du fichier joint "&Request("type")&"." & VbCrLf strBody = strBody & "Amicalement. DomChauvet" & VbCrLf Mailer.BodyText = strBody if Mailer.SendMail then msg="Félicitations : Le classement est dans votre boite aux lettres" _ & "<br>Fichier : "&Request("type") else msg="Problème d'envoi<br>"&Mailer.Response end if
End If %>
<html><head><title>Classement national</title> </head><body> <%if msg="" then%> <p align="center"><b>Obtenir tout de suite ce <u>classement complet</u> dans un fichier "Excel" ou "texte"</b></p>
<form method="POST" action="classement_excel.asp"> <table border="0" cellspacing="1" width="500"> <tr> <td>Recevez ce fichier en indiquant simplement</td> </tr><tr> <td><select size="1" name="type"> <option value="classement_excel.slk">excel</option> <option value="classement_texte.txt">texte</option> </select> le type de fichier choisi</td> </tr><tr> <td><input type="text" name="Mail" size="22" value="<%=Request.Cookies("deltamail")%>"> votre e-mail</td> </tr><tr> <td><input type="submit" value="Recevoir" name="Action"> un seul clic suffit ...</td> </tr> </table> </form>
<p>La version excel (fichier *.slk) est compatible avec Excel</p> <p>La version texte (fichier *.txt) est compatible avec Word, Works, Word Pad etc....</p>