PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → SQL et Excel (bis)
SQL et Excel (bis)
Débuté par Damien, 04 mar. 2003 19:15 - 7 réponses
Posté le 04 mars 2003 - 19:15
Bonjour,
je voudrais écrire des données dans un fichier Excel. La solution étant les
commandes SQL, d'après le manuel de Webdev, je me suis un peu penché sur
le sujet.
Mais je en parviens pas à établir de connexion SQL avec mon fichier.

De plus, je me demande de quel facon on cible les requetes dans un fichier
Excel (SELECT champs FROM table). champs et table correspondent à quoi dans
le fichier Excel ?

Merci de votre aide.

A bientot

Damien
Posté le 05 mars 2003 - 09:55
Slt Damien

Comment se passe ta connexion ODBC ???

A moins que tu utilises un lien API (dans ce cas le SQL devrait avoir un peu
de mal à fonctionner)??

Alain V

"Damien" <damien@jsi.fr> a écrit dans le message news: 3e64ed50$1@news....

Bonjour,
je voudrais écrire des données dans un fichier Excel. La solution étant

les
commandes SQL, d'après le manuel de Webdev, je me suis un peu penché sur
le sujet.
Mais je en parviens pas à établir de connexion SQL avec mon fichier.

De plus, je me demande de quel facon on cible les requetes dans un fichier
Excel (SELECT champs FROM table). champs et table correspondent à quoi

dans
le fichier Excel ?

Merci de votre aide.

A bientot

Damien

Posté le 05 mars 2003 - 17:52
Voici le message d'erreur que me renvoi le W-Langage :

"Erreur à la ligne 12 de la procédure "XLS_EXPORT.SOR":(msg 0666) (Il n'y
a pas de connexion en cours. (CS 00128)) pendant SQLExec"

pourtant, voici mon code :

requete est une chaine
gNomRequete est une chaine

si sqlconnecte("E:\suiviSAV\essai.xls","","","","Excel 8") <> 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

gNomRequete = "Vider"
requete = "DELETE * FROM table1"

si sqlexec(requete,gNomRequete) = faux alors
sqlinfogene()
erreur(sql.meserreur)
FIN

sqlferme(gNomRequete)
sqldeconnecte()

merci d'avance.
Damien
Posté le 06 mars 2003 - 10:13
slt Damien

Essai plutôt
requête = "DELETE * FROM table1"
si sqlexec(requete,"Vider") = 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

Normalement le résultat est censé être booléen mais sqlExec retourne
toujours 0 lorsqu'il échoue ou un nombre aléatoire en cas de réussite.

Tiens nous au courant.

Alain V

"Damien" <damien@jsi.fr> a écrit dans le message news: 3e662b51$1@news....

Voici le message d'erreur que me renvoi le W-Langage :

"Erreur à la ligne 12 de la procédure "XLS_EXPORT.SOR":(msg 0666) (Il n'y
a pas de connexion en cours. (CS 00128)) pendant SQLExec"

pourtant, voici mon code :

requete est une chaine
gNomRequete est une chaine

si sqlconnecte("E:\suiviSAV\essai.xls","","","","Excel 8") <> 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

gNomRequete = "Vider"
requete = "DELETE * FROM table1"

si sqlexec(requete,gNomRequete) = faux alors
sqlinfogene()
erreur(sql.meserreur)
FIN

sqlferme(gNomRequete)
sqldeconnecte()

merci d'avance.
Damien

Posté le 06 mars 2003 - 10:58
J'ai toujours la même erreur...
Peut-etre que cela vient de mon SQLConnect ou alors d'un réglage dans mon
pilote ODBC...Faut-il définir le fichier Excel dans le gestionnaire ODBC
Windows ?
Si oui, je pense l'avoir fait, mais ca ne fonctionne toujours pas...


"SFCI Conseil - Alain" <sfci.conseil@wanadoo.fr> wrote:
slt Damien

Essai plutôt
requête = "DELETE * FROM table1"
si sqlexec(requete,"Vider") = 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

Normalement le résultat est censé être booléen mais sqlExec retourne
toujours 0 lorsqu'il échoue ou un nombre aléatoire en cas de réussite.

Tiens nous au courant.

Alain V

"Damien" <damien@jsi.fr> a écrit dans le message news: 3e662b51$1@news....

Voici le message d'erreur que me renvoi le W-Langage :

"Erreur à la ligne 12 de la procédure "XLS_EXPORT.SOR":(msg 0666) (Il

n'y
a pas de connexion en cours. (CS 00128)) pendant SQLExec"

pourtant, voici mon code :

requete est une chaine
gNomRequete est une chaine

si sqlconnecte("E:\suiviSAV\essai.xls","","","","Excel 8") <> 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

gNomRequete = "Vider"
requete = "DELETE * FROM table1"

si sqlexec(requete,gNomRequete) = faux alors
sqlinfogene()
erreur(sql.meserreur)
FIN

sqlferme(gNomRequete)
sqldeconnecte()

merci d'avance.
Damien




Posté le 06 mars 2003 - 15:39
Ce que je te recommandes c'est de créer un DSN System pour créer l'ODBC dont
tu as besoins en lui donnant le nom que tu veux : par exemple
"Connexion_Excel".

puis utilise la procédure suivante (Source sera "Connexion_Excel" que tu
auras noté en paramètre d'appel de SourceOdbc())

Déjà ça te donnera une idée sur la connexion ODBC (a-t-elle échoué ??
pourquoi ??)

Cette procédure est valable pour ACCESS et PARADOX sans autre modification
que la conception du DSN System
=======================================================================
Procédure SourceODBC(Source)
// connexion ODBC AV 20/08/2001
NomSource = source
wres = SQLConnecte(NomSource,"","","","ODBC")
// messages suite à mauvaise connexion ODBC lors du chargement de la page
si wres=0 alors
//La connexion a échoué, affichage d'un message explicatif
//Recherche du nom de la source dans la liste des sources disponibles
si position(rc+Majuscule(SQLListeSource("DATABASE","ODBC"))+rc,...
rc+Majuscule(NomSource)+rc)=0 alors
// Source NON trouvée dans la liste des données ODBC du poste
// En test sous l'éditeur, vérifier si l'option "Exécution..Mode Test 32
bits" est cochée
Erreur("Impossible de se connecter à la source ODBC : "+NomSource,...
"- Ce programme s'exécute en "+sysversionwindows()[[a 2]]+...
" bits, vérifiez que le driver ODBC est aussi "+sysversionwindows()[[a
2]]+" bits",...
"- La liste des sources de données ODBC disponibles en "+...
sysversionwindows()[[a 2]]+" bits est :",...
SQLListeSource("DATABASE","ODBC"),...
"REMARQUE : D'autres drivers ODBC sont peut être installés, mais non
configurés.")
sinon
// Source trouvée dans la liste
Erreur("La source de donnée "+NomSource+...
rc+" a bien été trouvée, mais la connexion a échoué."+...
rc+"- Vérifiez le mot de passe et le nom de la base")
fin
FIN
==================================================================

A partir du moment où on sait si la connexion ODBC est correcte ou pas tu
pourras réfléchir au SQL.

A+

Alain V

"Damien" <damien@jsi.fr> a écrit dans le message news: 3e671bc5$1@news....

J'ai toujours la même erreur...
Peut-etre que cela vient de mon SQLConnect ou alors d'un réglage dans mon
pilote ODBC...Faut-il définir le fichier Excel dans le gestionnaire ODBC
Windows ?
Si oui, je pense l'avoir fait, mais ca ne fonctionne toujours pas...


"SFCI Conseil - Alain" <sfci.conseil@wanadoo.fr> wrote:
slt Damien

Essai plutôt
requête = "DELETE * FROM table1"
si sqlexec(requete,"Vider") = 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

Normalement le résultat est censé être booléen mais sqlExec retourne
toujours 0 lorsqu'il échoue ou un nombre aléatoire en cas de réussite.

Tiens nous au courant.

Alain V

"Damien" <damien@jsi.fr> a écrit dans le message news:

3e662b51$1@news....

Voici le message d'erreur que me renvoi le W-Langage :

"Erreur à la ligne 12 de la procédure "XLS_EXPORT.SOR":(msg 0666) (Il
n'y

a pas de connexion en cours. (CS 00128)) pendant SQLExec"

pourtant, voici mon code :

requete est une chaine
gNomRequete est une chaine

si sqlconnecte("E:\suiviSAV\essai.xls","","","","Excel 8") <> 0 alors
sqlinfogene()
erreur(sql.meserreur)
FIN

gNomRequete = "Vider"
requete = "DELETE * FROM table1"

si sqlexec(requete,gNomRequete) = faux alors
sqlinfogene()
erreur(sql.meserreur)
FIN

sqlferme(gNomRequete)
sqldeconnecte()

merci d'avance.
Damien






Posté le 06 mars 2003 - 18:07
Merci beaucoup, la connexion s'établi correctement avec votre méthode.
Il me reste à étudier la facon dont je vais écrire dans mon fichier Excel.

Merci encore,
Damien
Posté le 07 mars 2003 - 11:58
Bonjour Damien

Je te rassure : en fait c'est la méthode de l'aide de Webdev que j'ai très
légèrement adaptée (notamment en ne retenant que les messages jugés
nécessaires pour mes applis). Le grand mérite de cette aide est
l'universalité de ce module qui nous a été fourni.

Bon WE

Alain V


"Damien" <damien@jsi.fr> a écrit dans le message news: 3e67806e@news....

Merci beaucoup, la connexion s'établi correctement avec votre méthode.
Il me reste à étudier la facon dont je vais écrire dans mon fichier Excel.

Merci encore,
Damien