Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 01/12/2010, 18h04   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Par défaut Question sur Publipostage

Bonsoir,

J'ai bien avancé sur mon projet et je teste le publipostage à partir de ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub MergeIt()
Dim objWord As Word.Document
Set objWord = GetObject("C:\Local Data\Access\Publipostage\Publipostage.doc", "Word.Document")
' Rend Word visible important puisque la fusion se fait à l'écran.
objWord.Application.Visible = True
' Sélectionne .la base de données Comptoir comme source de données pour la fusion
objWord.MailMerge.OpenDataSource _
Name:="C:\Local Data\Access\Publipostage\Comptoir.mdb", _
LinkToSource:=True, _
Connection:="TABLE Employes", _
SQLStatement:="SELECT * FROM [Employes]"
' Exécution de la fusion.
objWord.MailMerge.Execute
Set objWord = Nothing
End Sub
Autant le code suivant fonctionne lorsque l'on met en dur le chemin+nom du fichier, autant je me perds lorsque j'ai le chemin+nom de fichier dans un champs d'une de mes tables, car getobject requiert un path style "c:\contrat.doc".
Idem, je bloque si je ne veux pas mettre en dur le chemin de ma base.

Avez-vous une idee ?
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 09h11   #2
Membre confirmé
 
Homme Ahmad Hamam
développeur amateur
Inscription : octobre 2006
Messages : 108
Détails du profil
Informations personnelles :
Nom : Homme Ahmad Hamam
Âge : 55
Localisation : France

Informations professionnelles :
Activité : développeur amateur
Secteur : Santé

Informations forums :
Inscription : octobre 2006
Messages : 108
Points : 205
Points : 205
bonjour
à verifier !
ca peut bloquer quand il y a un espace (vide) dans le champ de ta table qui contient le repertoire ,access ne reconnait pas alors le repertoire!
cordialement
hajeahmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 09h23   #3
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour
le fichier peut être donné par une variable, par exemple
Code :
1
2
3
4
 
Dim fichier As variant
fichier = DLookup("[fichier]", "tbFichiers", "[N°]=1")
Set objWord = GetObject(fichier, "Word.Document")
ou
Code :
1
2
3
4
 
Dim repertoire As variant
repertoire = DLookup("[repertoire]", "tbRepertoires")
Set objWord = GetObject(repertoire & "publipostage.doc", "Word.Document")
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 09h21   #4
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Bonjour,

Désolé pour le retard mais j'ai été pris par autre chose.

Alors pour le chemin, chaque document se trouve sous I:\RH\...\CDD_Rempl-35.doc, certes le chemin est un peu long, mais il n'y a pas de blanc.

Ensuite, pour moi Getobject devrait etre égal au résultat de "Select sources from Employes" (il n'y aura qu'une seule ligne a chaque fois dans cette table)
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 17h06   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Merci Helas,

Je viens d'y arriver avec Dlookup
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 15h35   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Bon qui va lentement va surement, j'arrive au bout, il ne me reste plus qu'à modifier tous mes contrats types en y ajoutant les champs de fusion qui vont bien.

Par contre, j'essaye d'envoyer un mail à partir des valeurs d'une table que j'ai alimentée précédemment (table MailMatri avec champs Matri, Nom, Prenom, Expr1004) et cela bloque à Set oRst, avez-vous une idée ? meci

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
Sub EnvoiMailMatri()
'Ajouter les références suivantes :
'Microsoft Outlook
'Microsoft DAO
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim strContenu As String
Dim oRst As DAO.Recordset
Dim oFld As DAO.Field
Dim strTo As String
'Instancie Outlook
Set oApp = CreateObject("Outlook.Application")
'Ouvre un recordset sur la table MailMatri
Set oRst = CurrentDb.OpenRecordset("SELECT * FROM MailMatri")
'Crée un nouveau message
oMail.Subject = "Matricule de" & oRst.Fields("Prenom")
Set oMail = oApp.CreateItem(olMailItem)
oMail.Body = strContenu
strContenu = strContenu & "Bonjour," & vbCrLf & _
             "Le matricule de " & oRst.Fields("Nom") & " " & oRst.Fields("Prenom") _
             & "est" & oRst.Fields("Matri")
'Boucle sur chaque client et les ajoute au champ BCC du mail
While Not oRst.EOF
  strTo = strTo & oRst.Fields("Expr1004")
  oRst.MoveNext
Wend
'Envoi le mail
oMail.Send
'ferme le curseur
oRst.Close
Set oRst = Nothing
End Sub
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h33   #7
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonsoir,
Il faudrait déclarer le mail avant de le modifier
Code :
1
2
3
 
Set oMail = oApp.CreateItem(olMailItem)
oMail.Subject = "Matricule de" & oRst.Fields("Prenom")
de même pour le corps du mail
Code :
1
2
3
4
5
6
 
strContenu = strContenu & "Bonjour," & vbCrLf & _
             "Le matricule de " & oRst.Fields("Nom") & " " & oRst.Fields("Prenom")_ 
             & "est" & oRst.Fields("Matri")
 
oMail.Body = strContenu
sinon le reste est correct et fonctionne parfaitement
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 11h53   #8
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Merci beaucoup, trop sympa
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 11h27   #9
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
J'ai fait l'essai : j'ai un message d'erreur me disant qu'une requete action ne peut être utilisée comme contenu (erreur au niveau du Set oRst)

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
Sub EnvoiMailMatri()
'Ajouter les références suivantes :
'Microsoft Outlook
'Microsoft DAO
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim strContenu As String
Dim oRst As DAO.Recordset
Dim oFld As DAO.Field
Dim strTo As String
'Instancie Outlook
Set oApp = CreateObject("Outlook.Application")
'Ouvre un recordset sur la table MailMatri
Set oRst = CurrentDb.OpenRecordset("SELECT * FROM MailMatri")
'Crée un nouveau message
Set oMail = oApp.CreateItem(olMailItem)
oMail.Subject = "Matricule de" & oRst.Fields("Prenom")
strContenu = strContenu & "Bonjour," & vbCrLf & _
             "Le matricule de " & oRst.Fields("Nom") & " " & oRst.Fields("Prenom") _
             & "est" & oRst.Fields("Matri")
oMail.Body = strContenu
'Boucle sur chaque client et les ajoute au champ BCC du mail
While Not oRst.EOF
  strTo = strTo & oRst.Fields("Expr1004")
  oRst.MoveNext
Wend
'Envoi le mail
oMail.Send
'ferme le curseur
oRst.Close
Set oRst = Nothing
End Sub
coolchti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 13h01   #10
Invité de passage
 
Inscription : novembre 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 9
Points : 0
Points : 0
Autant pour moi, une erreur sur le select, ca marche impec, encore merci
coolchti 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 09h56.


 
 
 
 
Partenaires

Hébergement Web