aakpa
Messages postés57Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention10 janvier 2016
-
22 août 2005 à 18:27
aakpa
Messages postés57Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention10 janvier 2016
-
6 sept. 2005 à 09:46
salut a tous
j'ai un prob; je m'explique
Je fais un programme dans lequel je genere un groupe d'etat crystal report.
Dans ce groupe on suppose kil y a 5 personne qui possede chacune un adresse de messagerie.
Je voudrais pouvoir envoir chaque etat a chaque personne correspondante.
Je n'y arrive pas
Aidez moi SVP
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 août 2005 à 18:37
Salut
Comme d'habitude, il faut décomposer :
- Sais-tu envoyer un mail simple ?
--> Des tas de solutions sur vbfrance (peut-être pas en VBA !)
- Sais-tu joindre ton état à ton mail ? Texte à coller ou fichier à joindre ?
- Rechercher les infos dans ta DB pour récupérer tes adresses mails
...
Faut commencer par ... le commencement, et pose des questions précises, parce "je n'y arrive pas", c'est une constatation d'échec, pas une question.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
aakpa
Messages postés57Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention10 janvier 2016 22 août 2005 à 19:06
je peux deja faire tout cela. C'est envoyer les différents etats aux personnes correspondante que ne n'arrive pas a faire. il envoie automatiquement tout le lot a toutes les personnes
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 août 2005 à 19:16
re
Ok, c'est déjà une bonne chose.
Comme ma boule magique est en panne, pourrais-tu au moins nous donner quelques lignes de code avec lequel tu fais ces envois + descriptif de tes variables/table ... qu'on sache où sont stockées les infos : Là, on ne peut pas te répondre !
Comment pouvais-tu espérer une réponse avec des questions aussi vagues (ça me dépasse !)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 août 2005 à 23:37
Vite fait avant d'aller dodoter
Tu fais
newMail.Attachments.Add ("c:\releve\good.rpt")
Mais qui (quoi) génère ce fichier que tu joins ?
La requète juste devant ?
Désolé, je ne vois pas le lien ...
Il manque le lien entre le AdoRs.Open et le fichier "c:\releve\good.rpt"
Explique
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
aakpa
Messages postés57Date d'inscriptionmardi 24 mai 2005StatutMembreDernière intervention10 janvier 2016 23 août 2005 à 08:57
Bonjour
Ok c'est là mon prob
L'etat que je veux envoyer (c:\releve\good.rpt), je voudrais kil depende du recordset que je fais juste avant ainsi l'etat pourra se servir du recordset pour etre envoyer a la personne correspondante.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 23 août 2005 à 23:25
Je traduis donc ces quatre pages de questionnement par la vraie question :
"Comment envoyer dans un fichier le contenu d'un RecordSet ?"
Tu te rends compte qu'on a mis 3 jours pour arriver à la question ?
Alors derrière, viennent d'autres questions :
Quelle gueule a ton fichier RPT ?
Est-ce un format texte banal de la liste des données ?
Est-ce un format particulier compatible avec tel ou tel logiciel ? (Si tu réponds oui à cette question, donne moi tout de suite le nom du logiciel, pour qu'on reperde pas 3 autres jours)
Te rends-tu compte qu'on est obliger de t'extraire les vers du nez pour TE rendre service ?
Alors bouge toi les fesses, arrête de fumer n'importe quoi et pose des questions concrètes et sensées, que diable !
(dans une autre vie, je serai prof, c'est sûr, avec une baguette en bambou, gniarc, gniarc, gniarc ...)
Ne t'inquiète pas, je suis pas méchant !
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 août 2005 à 14:36
Salut
Désolé, je ne connais pas CRYSTAL REPORT (CR)
A mon avis, ça ne dois pas être très compliqué :
Une fois que tu auras fournis à CR ton RecordSet, il suffit de lui demander de générer le fichier en question.
Il faudra penser à mettre un DoEvents après cette commande de génération pour que CR ait le temps de travailler.
(et bonjour au Bénin , je viens de voir ça sur ta fiche)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 août 2005 à 19:09
Salut, c'est re-moi
Si tu ne trouves pâs pour ton Crystal Report, je t'ai préparé un code pour fabriquer un fichier texte compatible avec Excel ou OpenOffice :
Dim ff As Integer, r As Long, Temp As String
Dim nomFichier As String, Séparateur As String
nomFichier = App.Path & "\Données.csv" ' A toi de choisir un nom adapté
Séparateur = ";" ' Peut aussi être virgule ou vbTab
' Suppression du fichier si existe déjà
If Dir(nomFichier, vbNormal) <> "" Then Kill nomFichier
' Ouverture du fichier pour écrire les données
ff = FreeFile
Open nomFichier For Output As #ff
With AdoRS
'----- Ecriture de l'entête = Nom des colonnes
Temp = .Fields(0).Name ' 1er champ
For r = 1 To .Fields.Count - 1
Temp = Temp & ";" & .Fields(r).Name
Next r
' Ecrit la ligne
Print #ff, Temp
'----- Ecriture des données
.MoveFirst
Do While Not .EOF
Temp = CStr(.Fields(0).Value) ' 1er champ
For r = 1 To .Fields.Count - 1
Temp = Temp & ";" & CStr(.Fields(r).Value)
Next r
' Ecrit la ligne
Print #ff, Temp
' Ligne suivante
.MoveNext
DoEvents
Loop
End With
' Referme le fichier
Close #ff
Voilà, insère ça (sauf les Dim --> au début) entre ces deux lignes :
CrxReport.Database.Tables(1).SetDataSource AdoRs, 1
'----------
newMail.Attachments.Add ("c:\releve\good.rpt")
et cette dernière ligne, tu la corrige comme ceci :
newMail.Attachments.Add (nomFichier)
Vous êtes pas gatés sur Codes-Sources, hein ?
Vous en trouverez des sites où on te fais du cousu main !
Tiens moi au courant de la suite
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 août 2005 à 20:15
J'y ai repensé : Pour mieux gérer les valeurs numériques, il faudra peut-être modifier cette ligne
Temp = CStr(.Fields(0).Value) ' 1er champ
pour
Temp = Chr(34) & CStr(.Fields(0).Value) & Chr(34) ' 1er champ
et celle-ci
Temp = Temp & ";" & CStr(.Fields(r).Value)
pour
Temp = Temp & ";""" & CStr(.Fields(r).Value) & Chr(34)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 août 2005 à 14:20
Salut
Encore une correction :
J'avais prévu une variable dans laquelle stocker le séparateur de liste, judicieusement appelée "Séparateur" et je ne l'ai pas utilisée.
Donc, dans les deux lignes qui commencent par :
Temp = Temp & ";" &
mets ceci à la place :
Temp = Temp & Séparateur &
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)