Sql =>exel via asp
Résolu/Fermé
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
-
19 mai 2009 à 14:10
batoune Messages postés 538 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 4 avril 2017 - 20 mai 2009 à 10:13
batoune Messages postés 538 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 4 avril 2017 - 20 mai 2009 à 10:13
A voir également:
- Sql =>exel via asp
- Formule exel - Guide
- Exel 2013 - Télécharger - Tableur
- Récupération serveur sql - Télécharger - Gestion de données
- Via michelin - Télécharger - Transports & Cartes
- Traduction via photo - Guide
2 réponses
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
96
19 mai 2009 à 16:12
19 mai 2009 à 16:12
Bon, suite a diverse recherche j'ai trouver quelque chose qui consiste a ecrire du html et a le transformer en xls a la fin, mais malger tout mes effort j'ai toujours une erreur :
Erreur d'exécution Microsoft VBScript error '800a01a8'
Objet requis: 'System'
/Sauvegarde.asp, line 50
mon code est le suivant :
l'erreur est sur la ligne "HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default"
Voila, j'espere que quelqu'un pourra m'aider
merci d'avance
Erreur d'exécution Microsoft VBScript error '800a01a8'
Objet requis: 'System'
/Sauvegarde.asp, line 50
mon code est le suivant :
<%@ LANGUAGE="VBScript" %> <% Dim serverAdresse 'adresse du serveur Dim user 'utilisateur Dim password 'mot de passe Dim nomBase 'nom de la base a utiliser Dim Maconnexion Dim conn Dim nbcol Dim Temp 'une chaine de caractere %> <% 'On ce connecte a la base de donnees 'Parametre de connection a la base serverAdresse = "blabla\blibli" 'adresse du serveur user = "leLogin" 'utilisateur password = "lePassword" 'mot de passe nomBase = "resultats" 'nom de la base a utiliser 'Ouverture de la connection Set Maconnexion = Server.CreateObject("ADODB.Connection") conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password ' & ";option=16386" Maconnexion.open conn set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset nbcol.open "SELECT nomTest,etat,plageHoraire FROM resultats_tests WHERE CAST(FLOOR(CAST(laDate AS FLOAT)) AS DATETIME) = '20090519' AND environnement = 'Maison'", Maconnexion, 3, 3, 1 nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset Temp = Temp &"<TABLE BORDER=1><TR>" Temp = Temp &"<TD><B>Fonction</B></TD>" Temp = Temp &"<TD><B>Etat</B></TD>" Temp = Temp &"<TD><B>Plage Horaire</B></TD>" Temp = Temp &"</TR>" DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements Temp = Temp &"<TR>" Temp = Temp &"<TD>" & nbcol("NomTest") & "</TD>" Temp = Temp &"<TD>" & nbcol("etat") & "</TD>" Temp = Temp &"<TD>" & nbcol("plageHoraire") & "</TD>" Temp = Temp &"</TR>" nbcol.movenext 'on pas a l'enregistrement suivant LOOP 'fin de la boucle nbcol.Close 'on referme l'objet recordset Set nbcol=Nothing 'on le met a rien pour liberer de la memoire Maconnexion.Close 'Déconnexion de SQL une fois tout les résultats affiché Set Maconnexion = Nothing 'Affectation a rien de l'objet Maconnexion Temp = Temp &"</TABLE>" HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" HttpContext.Current.Response.Write(Temp) %>
l'erreur est sur la ligne "HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default"
Voila, j'espere que quelqu'un pourra m'aider
merci d'avance
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
96
20 mai 2009 à 10:13
20 mai 2009 à 10:13
Bon une fois encore j'ai trouver ma reponse tout seul,
Alors vu que sa ma bien souler tout sa, je la met ici des fois que sa interresserais quelqu'un :
Dans une premiere page .asp, je fais :
en premiere ligne :
<%@ LANGUAGE="VBScript" %>
déclaration des variables :
<%
Dim serverAdresse 'adresse du serveur
Dim user 'utilisateur
Dim password 'mot de passe
Dim nomBase 'nom de la base a utiliser
Dim Maconnexion 'objet connexion
Dim conn
Dim nbcol un recordset
%>
entete de page html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>nomdemapage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css.css" />
</head>
<body>
On ce connecte a la base de données et on fait notre requete sql:
<%
'Parametre de connection a la base
serverAdresse = "blabla" 'adresse du serveur
user = "user" 'utilisateur
password = "password" 'mot de passe
nomBase = "maBase" 'nom de la base a utiliser
'Ouverture de la connection
Set Maconnexion = Server.CreateObject("ADODB.Connection")
conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password
Maconnexion.open conn
'requete sql
set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset
nbcol.open "SELECT nom,prenom,lieu FROM maTable WHERE nom = 'Martin' AND lieu = 'bureau' ORDER BY nom, prenom", Maconnexion, 3, 3, 1 'on execute la requete sql
On creer un tableau html dans la variable Temp a partir des lignes de la requete (le recordset):
nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset
Temp = Temp &"<TABLE BORDER=1><TR>"
Temp = Temp &"<TD><B>Fonction</B></TD>"
Temp = Temp &"<TD><B>Etat</B></TD>"
Temp = Temp &"<TD><B>Plage Horaire</B></TD>"
Temp = Temp &"</TR>"
DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements
Temp = Temp &"<TR>"
Temp = Temp &"<TD>" & nbcol("nom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("prenom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("lieu") & "</TD>"
Temp = Temp &"</TR>"
nbcol.movenext 'on pas a l'enregistrement suivant
LOOP 'fin de la boucle
nbcol.Close 'on referme l'objet recordset
Set nbcol=Nothing 'on le met a rien pour liberer de la memoire
Temp = Temp &"</TABLE>"
On crer un formulaire avec un bouton qui appel une autre page (ici excel.asp) et un champ cacher avec la variable Temp comme valeur :
response.write ("<form method='post' action='excel.asp'> <input type ='hidden' value='"&Temp&"' name='tempp' id='tempp'></br> <input type='submit' value='Exportez' /></form>")
on termine notre premiere page en refermant les balise encore ouverte:
%>
</body>
</html>
Ensuite dans la page excel.asp, j'ai juste 2 lignes :
<% Response.ContentType = "application/vnd.ms-excel" %> 'pour dire a IE que je renvoie un fichier excel et pas une page web
<% response.write (Request.Form("tempp"))%> 'on "affiche" juste le contenu de la variable Temp qui contient en fait le tableau html créer a la page precedente
Et voila, si excel est instaler sur votre PC client, IE vous proposera d'ouvrir ou de sauvegarder un fichier excel.xsl
Voila....
bonne chance a tous....
Alors vu que sa ma bien souler tout sa, je la met ici des fois que sa interresserais quelqu'un :
Dans une premiere page .asp, je fais :
en premiere ligne :
<%@ LANGUAGE="VBScript" %>
déclaration des variables :
<%
Dim serverAdresse 'adresse du serveur
Dim user 'utilisateur
Dim password 'mot de passe
Dim nomBase 'nom de la base a utiliser
Dim Maconnexion 'objet connexion
Dim conn
Dim nbcol un recordset
%>
entete de page html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>nomdemapage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css.css" />
</head>
<body>
On ce connecte a la base de données et on fait notre requete sql:
<%
'Parametre de connection a la base
serverAdresse = "blabla" 'adresse du serveur
user = "user" 'utilisateur
password = "password" 'mot de passe
nomBase = "maBase" 'nom de la base a utiliser
'Ouverture de la connection
Set Maconnexion = Server.CreateObject("ADODB.Connection")
conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password
Maconnexion.open conn
'requete sql
set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset
nbcol.open "SELECT nom,prenom,lieu FROM maTable WHERE nom = 'Martin' AND lieu = 'bureau' ORDER BY nom, prenom", Maconnexion, 3, 3, 1 'on execute la requete sql
On creer un tableau html dans la variable Temp a partir des lignes de la requete (le recordset):
nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset
Temp = Temp &"<TABLE BORDER=1><TR>"
Temp = Temp &"<TD><B>Fonction</B></TD>"
Temp = Temp &"<TD><B>Etat</B></TD>"
Temp = Temp &"<TD><B>Plage Horaire</B></TD>"
Temp = Temp &"</TR>"
DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements
Temp = Temp &"<TR>"
Temp = Temp &"<TD>" & nbcol("nom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("prenom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("lieu") & "</TD>"
Temp = Temp &"</TR>"
nbcol.movenext 'on pas a l'enregistrement suivant
LOOP 'fin de la boucle
nbcol.Close 'on referme l'objet recordset
Set nbcol=Nothing 'on le met a rien pour liberer de la memoire
Temp = Temp &"</TABLE>"
On crer un formulaire avec un bouton qui appel une autre page (ici excel.asp) et un champ cacher avec la variable Temp comme valeur :
response.write ("<form method='post' action='excel.asp'> <input type ='hidden' value='"&Temp&"' name='tempp' id='tempp'></br> <input type='submit' value='Exportez' /></form>")
on termine notre premiere page en refermant les balise encore ouverte:
%>
</body>
</html>
Ensuite dans la page excel.asp, j'ai juste 2 lignes :
<% Response.ContentType = "application/vnd.ms-excel" %> 'pour dire a IE que je renvoie un fichier excel et pas une page web
<% response.write (Request.Form("tempp"))%> 'on "affiche" juste le contenu de la variable Temp qui contient en fait le tableau html créer a la page precedente
Et voila, si excel est instaler sur votre PC client, IE vous proposera d'ouvrir ou de sauvegarder un fichier excel.xsl
Voila....
bonne chance a tous....