Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/07/2008, 12h44   #1
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Par défaut Export d'une requête SQL provenant d'une base Access vers un fichier Excel

Bonjour tout le monde,

Après x heures de recherche de modélisation de ma page et de programmation à tout va, j'ai perdu le bout du fil et je rame....

Je vous explique mon souhait, j'ai une page où je choisis par le biais d'une liste le type d'exploitation de système de serveurs (ex: Linux, Windows 2K3, Windows 2000...), et en cliquant sur le bouton appuyer ça me valide mon formulaire et on accède à notre fameuse page qui récupère la valeur donnée par le formulaire et l'intègre à notre requête SQL, ensuite la requête devrait être interprétée par mon serveur et qu'il me ressorte le résultat de cette requête sous forme d'un fichier excel pour du reporting.

Ce qu'il me manque c'est de la cohésion et une certaine compréhension de mon problème dans mon code ASP afin d'avancer dans ma tâche.

Je vous remercie d'avance messieurs pour l'aide apportée !

Cordialement,

Kév'


ps: voici le code de la page.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
 
<%
dim item
db_SQL = "SELECT Serveur, OS FROM THardware WHERE OS='"&OS&"' AND AEteSupprime=No"
 
set oRSt = server.CreateObject("ADODB.RecordSet")
db_conn="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=C:\Inetpub\wwwroot\Bdd\ServeursGy.mdb;" 
 
Response.ContentType="Application/xls"
Response.AddHeader "Content-Disposition", "filename=ReportingServeursGy.xls;" ' le nom du fichier
 
oRSt.open db_SQL, db_conn, 3, 1 
if not oRst.EoF then %>
	<table><tr>
	<%
		for each item in oRst.fields
			response.write "<td>" & item.name & "</td>"
		next %>
	</tr>
	<%
	do while not oRst.EoF
		response.write "<tr>"
		for each item in oRst.fields
			response.write "<td>" & item.value & "</td>"
		next
		response.write "</tr>"
		oRst.MoveNext
	Loop %>
	</table>
	<%
else %>
	<table><tr><td>Rien à exporter</td></tr></table><%
end if 
set oRst = nothing
%>
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h05   #2
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Salut,

Quel est le problème exactement ? Bug, plantage ?
J'ai du mal à savoir ce que tu cherches.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h23   #3
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Ca me plante littéralement, en fait ca me renvoit comme si la page n'existait pas et pas de fichier créer. Donc un problème dans mon code mais je n'arrive pas à voir d'où cela vient.
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h25   #4
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Tu peux mettre le message exact ?
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h33   #5
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Rectification l'ami, ca ne me met pas de messages d'erreur mais ca renvoit directement "Rien à exporter" dans mon fichier excel, comme s'il n'arrivait pas à interpréter ma requête et enregistrer le résultat dans mon fichier, bizarre.
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h38   #6
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Ca sera simple à débuger alors. Exécute la requête suivante sur ton manager SQL (Access dans ton cas il me semble).

Code :
db_SQL = "SELECT Serveur, OS FROM THardware WHERE OS='"&OS&"' AND AEteSupprime=No"
Et vérifie que tu as bien qq chose en sortie.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h58   #7
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Sous Access quand j'écris la requete ca me sort correctement les résultats escomptés.

Donc je suis toujours dans le vague là arf
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 16h02   #8
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 366
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 366
Points : 1 547
Points : 1 547
Bonjour

Citation:
db_SQL = "SELECT Serveur, OS FROM THardware WHERE OS='"&OS&"' AND AEteSupprime=No"
De quel type est le champs aEteSupprime ?

Booleen ?
Code :
db_SQL = "SELECT Serveur, OS FROM THardware WHERE OS='"&OS&"' AND AEteSupprime=false"
String ?
Code :
db_SQL = "SELECT Serveur, OS FROM THardware WHERE OS='"&OS&"' AND AEteSupprime='No'"
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 16h08   #9
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Coucou roro,

le champ AEteSupprime est de type Oui/Non sous access une case à cocher (coch""=Yes, non cochée=No). voilà pour ton information.
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 16h14   #10
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 366
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 366
Points : 1 547
Points : 1 547
Bonjour

Donc c'est un booléen. Essaye avec ma première propo, ça devrait le faire
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 16h18   #11
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Ok j'ai testé ta solution sous Access ca marche, mais en l'incorporant dans mon code toujours la même histoire : Rien à Exporter ...

Je pense que mon code dans la mise en forme et la récupération des valeurs doit être mauvais.
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 16h33   #12
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 366
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 366
Points : 1 547
Points : 1 547
Ya pas grand-chose dans le code qui risque de planter. Pour tes tests, mets en commentaire les deux lignes suivantes, pour voir le résultat directement dans ton sniffer :
Citation:
Response.ContentType="Application/xls"
Response.AddHeader "Content-Disposition", "filename=ReportingServeursGy.xls;
ça te permettra de déboguer plus rapidement. rajoute également :
(ça à l'air de rien, mais c'est terriblement efficace ;-)
au passage, tu n'as pas de on error resume next, dans ta page ? si oui, vires-le.

Enfin, au lieu de :
Citation:
"DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=C:\Inetpub\wwwroot\Bdd\ServeursGy.mdb;"
Mets plutot :
Code :
db_conn="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.mapPath("Bdd\ServeursGy.mdb")
Avec tout ça ...
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 10h15   #13
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Bonjour tout le monde en cette nouvelle journée,

Merci roro pour ton aide mais je rencontre toujours des problèmes après les tests faits avec ton code.

D'une part j'ai bien mis en com' les Response concernant le fichier excel donc ok cela s'affiche en html.

La requete s'affiche bien, par contre j'ai rencontré un probleme quand j'ai voulu changer mon path, quand j'ai mis le tien à la place ca m'a fait buggé (affichage d'une page comme quoi la page n'existait pas, donc probleme de chemin) alors j'ai remis celui d'origine qui marche bien.

Mais toujours le probleme comme quoi il ne veut pas afficher le résultat de ma requete donc le probleme vient se cibler sur cette partie :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
if not oRst.EoF then %>
	<table><tr>
	<%
		for each item in oRst.fields
			response.write "<td>" & item.name & "</td>"
		next %>
	</tr>
	<%
	do while not oRst.EoF
		response.write "<tr>"
		for each item in oRst.fields
			response.write "<td>" & item.value & "</td>"
		next
		response.write "</tr>"
		oRst.MoveNext
	Loop %>
	</table>
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 10h21   #14
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
C'est quoi ce message que tu cites souvent : la page n'existe pas.
A tout hasard, tu ne serais pas sur IE pour tes tests, et tu n'aurais pas l'option "Afficher messages d'erreur simplifiés" d'activer ? Cette option t'empêche de voir le détail des erreurs d'une page ASP.
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 10h38   #15
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Merci Tekpaf je ne connaissais pas cette option, et je ne comprenais pas pourquoi ce ne m'affichait plus des erreurs explicites pour ASP.

Donc voilà on va y voir un peu plus clair, donc j'ai bien remis le path que m'a donné roro, et ca me marque cela comme erreur

Citation:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x50c Thread 0x11bc DBC 0x15b5d84 Jet'.

/bdd/test2.asp, line 14


line 14:

Code :
1
2
 
oRst.open db_SQL, db_conn, 3, 1
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 14h15   #16
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Je ne suis pas un pro d'Access. Tu peux voir plus d'infos par là :
http://support.microsoft.com/kb/295297
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 14h47   #17
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 366
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 366
Points : 1 547
Points : 1 547
Bonjour

2 choses :

1/ l'utilisation de server.mapPath : Si la racine de ton site est c:/inetPub/wwwroot, la commande
Code :
Server.mapPath("Bdd\ServeursGy.mdb")
Renverra :
Citation:
c:/inetPub/wwwroot/Bdd/ServeursGy.mdb
C'est indispensable si tu doit heberger ton site sur un serveur distant : il est probable que la base de données se trouvera dans un autre repertoire que celui de ta machine de dev.
Dans l'immédiat, tu peux le mettre de côté et y revenir après. Donc garde, pour le developpement :
Citation:
"DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=C:\Inetpub\wwwroot\Bdd\ServeursGy.mdb;"
2/ Pour ton premier problème : "rien a exporter" : la condition oRst.EoF est vérifiée, ça veux dire que ton recordset est vide, et que donc aucun enregistrement ne remplit la condition . Ouvre ta BdD Access et vérifie tes enregistrements. Vides le cache de ton navigateur (beaucoups de surprises de ce côté là). Utilises d'autres navigateurs (Firefox, pour ne pas le citer, ou Opera). Encore une fois, il n'y a pas d'erreur dans ton code, donc l'erreur vient des données (ou d'un élément qu'on n'a pas ici).
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 10h17   #18
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Merci roro pour ton aide.

Donc comme je travaille actuellement sur une VM test j'ai laissé comme tu m'as dit avec le Server.mapPath.

Ce qui me parait bizarre quand je fais admettons ma requete sous Access il me renvoit les bon enregistrements, donc ca ne vient pas de là. De plus j'ai vide mon cache et j'ai installée firefox pour faire mes tests toujours la meme chose qui revient l'ami.

Citation:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x6ec Thread 0x1490 DBC 0x15b7024 Jet'.

/bdd/test2.asp, line 14
ca réfère à ça:

Code :
1
2
 
oRst.open db_SQL, db_conn, 3, 1
Par contre à quoi correspond les 2 derniers chiffres, comment décompose - t - on cette ligne ?

on ouvre la variable de connection, on y exécute la variable contenant la requete SQL, et le 3 , 1 à quoi correspondent - ils ?

Kiss et merci pour tout le débat et l'aide apporté, vous êtes bien sympas !

Amicalement,
Kév'
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 10h34   #19
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 366
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 366
Points : 1 547
Points : 1 547
Bonjour

Pour ton erreur, fait ça doit te renvoyer ce que tu avais avant, c'est à dire le chemin de ta base de données.Vérifies-le .

Pour le reste, le 3 correspond au type de curseur (3=curseur statique) et le 1 correspond au type de verrou (1=readOnly) .Voir les constantes lockTypeEnum et cursorTypeEnum)

Citation:
Ce qui me parait bizarre quand je fais admettons ma requete sous Access il me renvoit les bon enregistrements
C'est ça qui me le troue le plus, en fait. Tu fais un copier-coller de ta requête affichée par
response.write(db_SQL) ?
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 11h02   #20
Invité de passage
 
Étudiant
Inscription : février 2008
Messages : 30
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 30
Points : 3
Points : 3
Envoyer un message via MSN à kroc95
Voilà après avoir fait mes 2 response.write avant :

Citation:
oRst.open db_SQL, db_conn, 3, 1
J'ai changé aussi mon Server.mapPath("ServeursGy.mdb") car ca m'affichait 2 fois /bdd/bdd.

Donc ca me donne ceci au final l'ami roro :

Citation:
SELECT Serveur, OS FROM THardware WHERE (OS='LINUX' AND AEteSupprime=False)DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\Inetpub\wwwroot\Bdd\ServeursGy.mdb
kroc95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h17.


 
 
 
 
Partenaires

Hébergement Web