Bonjour tibao276,
On dit qu'une photo vaut mille mots, en pièce jointe un exemple.
Bonne journée
Bonjour tibao276,
On dit qu'une photo vaut mille mots, en pièce jointe un exemple.
Bonne journée
Merci beaucoup Robert?
Je part une semaine mais des mon retour je reviens vers toi après avoir étudié ton exemple.
Tibao276
Me revoilà, je suis redescendu des montagnes enneigées..
J'ai donc étudié ton exemple et transposé dans ma base.
J'ai utilisé le 2ème cas et tout semble fonctionner comme prévu (création de la table, ...)
Mais Word m'indique qu'il ne peut pas ouvrir la table en question.
Autre fait étrange il ne m'indique pas le nom complet de la table. "DD_WOR" au lieu "CDD_WORD".
Je joins une capture d'image.
Ah j'ai comparé le code de l'exemple avec le mien et il y avait une erreur de syntaxe.
Voilà le document Word s'ouvre.
Sinon est-il possible d'enlever les boites de dialogues qui nous demandes si l'on n'est bien d'accord pour créer une nouvel table, etc .. ?
Enfin,
J'ai en fait plusieurs contrat sous Word que j'aurais voulu appeler en fonction des réponses du formulaire de filtre:
exemple:
Si équipement = Aubevoye et cycle= mercredi alors appeler : contratTypeAubMerc.docx
Si équipement = Fontaine et cycle= mercredi alors appeler : contratTypeAubMerc.docx
J'imagine qu'il y a moyen de créer un test avec une histoire de boucle.
Comment puis-je m'y prendre?
Tibao276
Bonjour tibao276,
Est-ce que tu as bien mis les [] dans cette partie du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part SQLStatement:="SELECT * FROM [" & strD & "]"
Bonjour tibao276,
Oui c'est possible. Tu n'as qu'à avoir une table de correspondance ce qui sera plus évolutif que de le codé en dur. Dans cette table tu pourrais avoir 3 champs, Equipement, Cycle et CheminFichier. Dans chemin fichier tu indiques le chemin et le nom du fichier Word à ouvrir. Une requête avec comme paramètre l'équipement et le cycle te retournerait le bon fichier.
Bonne journée
Pour enlever les demandes d'ajout de ligne et de table dans Access
et pour les remettres
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.SetWarnings False 'Pour enlever les alertes
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.SetWarnings True 'Pour remettre les alertes
Ok je vois le principe, mais comment je l'intègre au projet?
A quel endroit dois-je appeler cette requête?Une requête avec comme paramètre l'équipement et le cycle te retournerait le bon fichier.
Bonjour tibao276,
Dans la fonction "fuCreerDoc" tu as 2 arguments, le premier est le nom de la table et le second est le chemin et nom du fichier Word. Tu passes dans le deuxième arguments le résultat de ta requête et le tour est joué.
Bonne journée
Bonjour Robert 1957,
Pourrais- tu me montrer comment dois-je exprimer le résultat de la requête pour.le résultat de ta requête
J'avais bien idée, que cela se trouvait en cet endroit, mais je n'arrive pas concrétiser !!!!
Par avance Merci,
Tibao276
Bonjour tibao276,
Tu insères ce code des lignes 1 à 7 avant la fonction et les lignes 9 à 11 après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String strSQL = "SELECT TaTable.LeChampCheminFichier FROM TaTable WHERE TaTable.LeChampEquipement = ""CeQueTuVeux"";" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) fuCreerDoc LeNomDeLaTable, rst("LeChampCheminFichier") rst.Close Set rst = Nothing Set db = Nothing
Bonne journée
Bonjour Robert 1957,
J'ai une erreur de compilation sur:
Sinon l'ensemble du code donne ceci mais du coup pas encore testé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim db As DAO.Database
Bonne journée Robert1957
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub Btton_Cdd_Word_Click() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String strSQL = "SELECT CheminCddWord.CheminFichiers FROM CheminCddWord WHERE (((CheminCddWord.Equipement = [Formulaires]![FiltreFusion_CDD_Word]![FormWordACM]) AND ((CheminCddWord.Periode = [Formulaires]![FiltreFusion_CDD_Word]![FormWordTypeSession]));" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) DoCmd.SetWarnings False DoCmd.OpenQuery "FiltreCDD" 'DoCmd.SetWarnings True fuCreerDoc "TableWord", rst("CheminFichiers") rst.Close Set rst = Nothing Set db = Nothing End Sub
J'ai effectué des modifications et ajouter la référence Microsoft DAO qui manquait.
Par contre j'ai une erreur d'exécution "3061" | Trop peu de paramètres : 2 attendu
Voic le code
Je comprends qu'il ne voit pas mes 2 conditions pourtant les 2 champs du formulaire sont correctement libellés!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub Btton_Cdd_Word_Click() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String strSQL = "SELECT CheminCddWord.CheminFichiers FROM CheminCddWord WHERE (((CheminCddWord.Equipement) = [Formulaires]![FiltreFusion_CDD_Word]![FormWordACM]) AND ((CheminCddWord.Periode) = [Formulaires]![FiltreFusion_CDD_Word]![FormWordTypeSession]));" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL) DoCmd.SetWarnings False DoCmd.OpenQuery "FiltreCDD" 'DoCmd.SetWarnings True fuCreerDoc "TableWord", rst("CheminFichiers") rst.Close Set rst = Nothing Set db = Nothing End Sub
Bonjour tibao276,
Le code devrait plutôt ressembler à ceci, si les champs de ta table sont textes.
Bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part strSQL = "SELECT CheminCddWord.CheminFichiers FROM CheminCddWord WHERE (((CheminCddWord.Equipement) =" & chr(34) & [Formulaires]![FiltreFusion_CDD_Word]![FormWordACM] & chr(34) & ") AND ((CheminCddWord.Periode) = " & chr(34) & [Formulaires]![FiltreFusion_CDD_Word]![FormWordTypeSession] & chr(34) & "));"
Effectivement les champs sont bien texte.
J'ai effectué le changement, mais il ya toujours un souci ... décidément je ne suis pas doué.
Microsoft Access ne trouve pas le champ"|13 auquel il fait référence dans votre expression.
Je suis perdu !!!
Erreur d'exécution 24
Bonjour tibao276,
Sous la ligne 6 inscrit un Debug.Print strSQL. Cela va te donner le résultat de la ligne et tu pourras voir ce qui ne va pas. Probablement une faute de frappe.
Bonne journée
Merci de ta patience Robert1957,
J'ai insérer la ligne comme convenu mais j'ai toujours la même boite de dialogue.
Erreur d'exécution '2465'
Microsoft Access ne trouve pas le champ "|1" auquel il fait référence dans votre expression.
Grrrr
Bonjour tibao276,
Ok j'était dans la lune, on est en VBA et tu dois nommer tes champs: Forms![FiltreFusion_CDD_Word].[FormWordACM]
Bonne journée
Si tu es dans le même formulaire tu peux simplifier encore avec : Me.FormWordACM
Mille Merci Robert1957 cela fonctionne.
J'ai beaucoup appris sur tes conseil
Rq: J'ai une autre épine dans le pied sur mon projet et celle-ci est présente depuis bien longtemps.
Accepterais-tu d'y jeter un coup d’œil à l'occasion pour me dire si mes envies sont réalisables et me mettre sur la voix?
J'avais fait un billet que j'ai fini par fermer faute d'accompagnement.
http://www.developpez.net/forums/d13...g-automatique/
ENCORE MERCI
Vous pouvez me donner votre réponse par courriel privé.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager