OVH Cloud OVH Cloud

Imprimer une selection (special)

25 réponses
Avatar
souricette
Bonjour,
Je souhaite modifier ce code, mais je ne sais pas par quel bout le prendre :
Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click

Dim stDocName As String
Dim MyForm As Form

stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
DoCmd.SelectObject acForm, stDocName, True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False

Exit_Imprimer_Sélection_Click:
Exit Sub

Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub

ça, c'est le code généré par Access (moi je suis infoutue d'écrire une ligne)
pour demander au bouton situé sur le formulaire
Frm-ListePays
d'imprimer le Formulaire
Frm CANDIDATS
qui contient les CV commplets des candidats et repose sur la table
Tbl Candidats
Le soucis, c'est que ce code m'imprime tous les candidats de la base, et non
les quelques candidats sélectionnés dans le sous-formulaire (feuille de
données) Frm-SelectionCandidatPays Sous-formulaire

il existe bien sûr une table
Tbl-SelectionCandidatPays
source du sous-formulaire et qui permet de faire la jointure entre les tables
Tbl-ListePays
et
Tbl Candidats

Je compte sur vos lumières...
Merci

10 réponses

1 2 3
Avatar
ze Titi
Hello souricette !

A l'ouverture du formulaire, tu dois déclencher le filtrage de
celui-ci. Ceci se fait par :

Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True

Ceci se met juste avant le DoCmd.PrintOut

Concernant la construction du filtre, il te faut parcourir les
enregistrements de ton sous-formulaire et les ajouter au filtre. Ceci
se fait par:

Dim rs as DAO.Recordset,tonFiltre As String
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone
rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "identifiantTable=" & rs!champIdentifiant & "
AND "
rs.MoveNext
Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)

Ce qui te donne, au final:

Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click
Dim stDocName As String
Dim MyForm As Form
Dim rs as DAO.Recordset,tonFiltre As String
stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone
rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "champLiaisonTableCandidats=" &
rs!champLiaisonTableListePays & " AND "
rs.MoveNext
Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)
DoCmd.SelectObject acForm, stDocName, True
Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Imprimer_Sélection_Click:
Exit Sub
Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub

Note: Dans la construction du filtre, il te faut remplacer
"champLiaisonTableCandidats" par le nom du champ de liaison entre ta
table [Tbl candidats] et ta table [tbl ListePays] dans la table [tbl
candidats] et "champLiaisonTableListePays" par le nom du champs lié
entre la table [Tbl candidats] et la table [tbl ListePays] dans la
table [tbl listepays]

Non testé donc non garanti...
Dis-nous !

En ce jour mémorable du jeudi 15/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
Je souhaite modifier ce code, mais je ne sais pas par quel bout le prendre :
Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click

Dim stDocName As String
Dim MyForm As Form

stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
DoCmd.SelectObject acForm, stDocName, True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False

Exit_Imprimer_Sélection_Click:
Exit Sub

Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub

ça, c'est le code généré par Access (moi je suis infoutue d'écrire une ligne)
pour demander au bouton situé sur le formulaire
Frm-ListePays
d'imprimer le Formulaire
Frm CANDIDATS
qui contient les CV commplets des candidats et repose sur la table
Tbl Candidats
Le soucis, c'est que ce code m'imprime tous les candidats de la base, et non
les quelques candidats sélectionnés dans le sous-formulaire (feuille de
données) Frm-SelectionCandidatPays Sous-formulaire

il existe bien sûr une table
Tbl-SelectionCandidatPays
source du sous-formulaire et qui permet de faire la jointure entre les tables
Tbl-ListePays
et
Tbl Candidats

Je compte sur vos lumières...
Merci


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
souricette
Note: Dans la construction du filtre, il te faut remplacer
"champLiaisonTableCandidats" par le nom du champ de liaison entre ta
table [Tbl candidats] et ta table [tbl ListePays] dans la table [tbl
candidats] et "champLiaisonTableListePays" par le nom du champs lié
entre la table [Tbl candidats] et la table [tbl ListePays] dans la
table [tbl listepays]

Non testé donc non garanti...
Dis-nous !


Donc si j'ai bien suivi :
"champLiaisonTableCandidats" est "N°Candidature"
l'identifiant des candidats de la table [Tbl Candidats]
et
"champLiaisonTableListePays" est "N°Pays" l'identifiant des pays de la table
[Tbl-ListePays]
Ce qui donne donc le code final :

Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click
Dim stDocName As String
Dim MyForm As Form
Dim rs as DAO.Recordset,tonFiltre As String
stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone
rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "
rs.MoveNext
Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)
DoCmd.SelectObject acForm, stDocName, True
Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Imprimer_Sélection_Click:
Exit Sub
Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub

Avatar
souricette
Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge avant
même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication

Avatar
ze Titi
Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?

En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge avant
même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


Avatar
souricette

Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de titre,
message: "Elément non trouvé dans cette collection", bouton "OK" qui revient
à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge avant
même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info







Avatar
ze Titi
Quels sont les noms des champs qui servent à faire la liaison entre ta table TblCandidats et la table TblPays ?



Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de titre,
message: "Elément non trouvé dans cette collection", bouton "OK" qui revient
à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge avant
même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info




Avatar
souricette

Quels sont les noms des champs qui servent à faire la liaison entre ta table TblCandidats et la table TblPays ?


table : [Tbl-SelectionCandidatPays], 3 champs :
"N°SélectionCandidatPays", NuméroAuto, Clef Primaire

"Candidat", numérique, liste de choix :"SELECT [Tbl
Candidats].N°Candidature, [Tbl Candidats]![Prénom] & " " & [Tbl
Candidats]![NomUsage] & ", " & [Tbl Candidats]![Civilité] AS Candidat, [Tbl
Candidats].Millesime FROM [Tbl Candidats];"

"Pays", numérique, liste de choix :"SELECT [Tbl-ListePays].[N°Pays],
[Tbl-ListePays].[Intitulé], [Tbl-ListePays].[ZoneMCI] FROM [Tbl-ListePays]"

ça répond à ta demande ?





Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de titre,
message: "Elément non trouvé dans cette collection", bouton "OK" qui revient
à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge avant
même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info









Avatar
ze Titi
Aïïïïïe, j'avais zappé la table intermédiaire... :/
Ca se complique...
A tester:

Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click
Dim stDocName As String
Dim MyForm As Form
Dim rs as DAO.Recordset,tonFiltre As String
stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
set rs=MyForm![Frm-SelectionCandidatPays Sous-formulaire].Form.RecordSetClone
rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "[N°Candidat]=" & DFirst("Candidat","[tbl-selectionCandidatPays]","Pays=" & rs!N°Pays) & " AND "
rs.MoveNext
Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)
DoCmd.SelectObject acForm, stDocName, True
Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Imprimer_Sélection_Click:
Exit Sub
Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub




Quels sont les noms des champs qui servent à faire la liaison entre ta table
TblCandidats et la table TblPays ?


table : [Tbl-SelectionCandidatPays], 3 champs :
"N°SélectionCandidatPays", NuméroAuto, Clef Primaire

"Candidat", numérique, liste de choix :"SELECT [Tbl
Candidats].N°Candidature, [Tbl Candidats]![Prénom] & " " & [Tbl
Candidats]![NomUsage] & ", " & [Tbl Candidats]![Civilité] AS Candidat, [Tbl
Candidats].Millesime FROM [Tbl Candidats];"

"Pays", numérique, liste de choix :"SELECT [Tbl-ListePays].[N°Pays],
[Tbl-ListePays].[Intitulé], [Tbl-ListePays].[ZoneMCI] FROM [Tbl-ListePays]"

ça répond à ta demande ?



Dans ton message du


Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de titre,
message: "Elément non trouvé dans cette collection", bouton "OK" qui
revient à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge
avant même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
souricette
Le formulaire "Frm-ListePays" sur lequel se trouve le bouton qui m'interesse
est directement basé sur la table des pays "Tbl-ListePays"
Sur ce formulaire figure un sous-formulaire "Frm-SelectionCandidatPays
Sous-formulaire" qui contient les candidats préselectionnés.
Je viens de vérifier au niveau de ses propriétés, source SELECT [Tbl-SelectionCandidatPays].[N°SélectionCandidatPays],
[Tbl-SelectionCandidatPays].[Candidat], [Tbl-SelectionCandidatPays].[Pays],
[Tbl Candidats].[N°Candidature], [Tbl Candidats].[Civilité], [Tbl
Candidats].[Prénom], [Tbl Candidats].[NomUsage], [Tbl Candidats].[EuropeEst],
[Tbl Candidats].[AmériqueLatine], [Tbl Candidats].[Asie], [Tbl
Candidats].[Maghreb], [Tbl Candidats].[Afrique Subsaharienne], [Tbl
Candidats].[MoyenOrient], [Tbl Candidats].[Etats-Unis (FMI, BM)], [Tbl
Candidats].[Millesime] FROM ([Tbl Candidats] INNER JOIN
[Tbl-SelectionCandidatPays] ON [Tbl Candidats].[N°Candidature]
=[Tbl-SelectionCandidatPays].[Candidat])


ça aide ?


Aïïïïïe, j'avais zappé la table intermédiaire... :/
Ca se complique...
A tester:

Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click
Dim stDocName As String
Dim MyForm As Form
Dim rs as DAO.Recordset,tonFiltre As String
stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
set rs=MyForm![Frm-SelectionCandidatPays Sous-formulaire].Form.RecordSetClone
rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "[N°Candidat]=" & DFirst("Candidat","[tbl-selectionCandidatPays]","Pays=" & rs!N°Pays) & " AND "
rs.MoveNext
Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)
DoCmd.SelectObject acForm, stDocName, True
Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Imprimer_Sélection_Click:
Exit Sub
Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub




Quels sont les noms des champs qui servent à faire la liaison entre ta table
TblCandidats et la table TblPays ?


table : [Tbl-SelectionCandidatPays], 3 champs :
"N°SélectionCandidatPays", NuméroAuto, Clef Primaire

"Candidat", numérique, liste de choix :"SELECT [Tbl
Candidats].N°Candidature, [Tbl Candidats]![Prénom] & " " & [Tbl
Candidats]![NomUsage] & ", " & [Tbl Candidats]![Civilité] AS Candidat, [Tbl
Candidats].Millesime FROM [Tbl Candidats];"

"Pays", numérique, liste de choix :"SELECT [Tbl-ListePays].[N°Pays],
[Tbl-ListePays].[Intitulé], [Tbl-ListePays].[ZoneMCI] FROM [Tbl-ListePays]"

ça répond à ta demande ?



Dans ton message du


Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de titre,
message: "Elément non trouvé dans cette collection", bouton "OK" qui
revient à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge
avant même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info











Avatar
ze Titi
As-tu essayé le code donné dans le post précédent ?

Dans ton message
Le formulaire "Frm-ListePays" sur lequel se trouve le bouton qui m'interesse
est directement basé sur la table des pays "Tbl-ListePays"
Sur ce formulaire figure un sous-formulaire "Frm-SelectionCandidatPays
Sous-formulaire" qui contient les candidats préselectionnés.
Je viens de vérifier au niveau de ses propriétés, source > SELECT [Tbl-SelectionCandidatPays].[N°SélectionCandidatPays],
[Tbl-SelectionCandidatPays].[Candidat], [Tbl-SelectionCandidatPays].[Pays],
[Tbl Candidats].[N°Candidature], [Tbl Candidats].[Civilité], [Tbl
Candidats].[Prénom], [Tbl Candidats].[NomUsage], [Tbl Candidats].[EuropeEst],
[Tbl Candidats].[AmériqueLatine], [Tbl Candidats].[Asie], [Tbl
Candidats].[Maghreb], [Tbl Candidats].[Afrique Subsaharienne], [Tbl
Candidats].[MoyenOrient], [Tbl Candidats].[Etats-Unis (FMI, BM)], [Tbl
Candidats].[Millesime] FROM ([Tbl Candidats] INNER JOIN
[Tbl-SelectionCandidatPays] ON [Tbl Candidats].[N°Candidature]
=[Tbl-SelectionCandidatPays].[Candidat])


ça aide ?


Aïïïïïe, j'avais zappé la table intermédiaire... :/
Ca se complique...
A tester:

Private Sub Imprimer_Sélection_Click()
On Error GoTo Err_Imprimer_Sélection_Click
Dim stDocName As String
Dim MyForm As Form
Dim rs as DAO.Recordset,tonFiltre As String
stDocName = "Frm CANDIDATS"
Set MyForm = Screen.ActiveForm
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone rs.MoveLast
rs.MoveFirst
while not rs.EOF
tonFiltre=tonFiltre & "[N°Candidat]=" &
DFirst("Candidat","[tbl-selectionCandidatPays]","Pays=" & rs!N°Pays) & " AND
" rs.MoveNext Wend
tonFiltre=left(tonFiltre,len(tonFiltre)-5)
DoCmd.SelectObject acForm, stDocName, True
Forms("Frm CANDIDATS").Filter= tonFiltre
Forms("Frm CANDIDATS").FilterOn=True
DoCmd.PrintOut
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Imprimer_Sélection_Click:
Exit Sub
Err_Imprimer_Sélection_Click:
MsgBox Err.Description
Resume Exit_Imprimer_Sélection_Click

End Sub


Dans ton message du


Quels sont les noms des champs qui servent à faire la liaison entre ta
table TblCandidats et la table TblPays ?


table : [Tbl-SelectionCandidatPays], 3 champs :
"N°SélectionCandidatPays", NuméroAuto, Clef Primaire

"Candidat", numérique, liste de choix :"SELECT [Tbl
Candidats].N°Candidature, [Tbl Candidats]![Prénom] & " " & [Tbl
Candidats]![NomUsage] & ", " & [Tbl Candidats]![Civilité] AS Candidat, [Tbl
Candidats].Millesime FROM [Tbl Candidats];"

"Pays", numérique, liste de choix :"SELECT [Tbl-ListePays].[N°Pays],
[Tbl-ListePays].[Intitulé], [Tbl-ListePays].[ZoneMCI] FROM [Tbl-ListePays]"

ça répond à ta demande ?



Dans ton message du


Les retours à la ligne sont évidemment à supprimer... (défaut dans le
copier-coller qui vient probablement de mon lecteur de news)

Concernant l'erreur qui se produit, vérifie que l'orthographe des
formulaires et des contrôles soit bonne. Je n'ai pas forcément fait
attention en écrivant le code.

Sur quelle ligne bloque le code ?


C'EST BIEN LA QUESTION !
la boite de dialogue est minimaliste :
titre "Microsoft Access", icone de fermeture seule dans la barre de
titre, message: "Elément non trouvé dans cette collection", bouton "OK"
qui revient à fermer la boite de dialogue,
mais la touche F1 ne déclenche rien,
et sans aucune indication de l'élément qui n'aurait pas été trouvé.
du coup, ça devient beaucoup plus difficile de chercher à corriger
l'erreur....

Par contre, le message n'est pas le même si je me positionne sur un pays
pour lequel je n'ai pas encore sélectionné de candidat :
il me dit clairement qu'il n'y a personne
En ce jour exceptionnel du lundi 19/02/2007, tu nous as très
généreusement gratifié du message suivant:

Le code réagit étrangement :
j'ai tout copié, tout collé, et les lignes suivantes virent au rouge
avant même que je n'ai fait quoi que ce soit d'autre :
set rs=MyForm![Frm-SelectionCandidatPays
Sous-formulaire].Form.RecordSetClone

tonFiltre=tonFiltre & "N°Candidature=" &
rs!N°Pays & " AND "

------------
après tentative d'exécution, Access 2003 me signale une "erreur de
compilation erreur de synthaxe"
j'ai corrigé en supprimant les retour à la ligne dans ces 2 lignes


Mais Access bloque sur le message suivant :
"Elément non trouvé dans cette collection"
Sans autre forme d'explication


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info








1 2 3