OVH Cloud OVH Cloud

Suite de l'impression pour Raymond..

11 réponses
Avatar
Sady
Bonsoir Raymond,

je m'amuse avec mes impressions mais ca fonctionne pas je=20
comprends pas pourquoi.. voici mon code comme tu me l'as=20
montr=E9:

Private Sub Commande91_Click()
On Error GoTo Err_Commande91_Click

Dim VariableNum=E9ro As Long
Dim Schema As Long
VariableNum=E9ro =3D InputBox("Entrer le num=E9ro du=20
rapport")

DoCmd.OpenReport "Projets",=20
acViewNormal, , "[rapport] =3D " & VariableNum=E9ro, acDialog
DoCmd.OpenReport "Etat-Requ=EAte-Moteur-Index",=20
acViewNormal, , "[rapport] =3D " & VariableNum=E9ro, acDialog
DoCmd.OpenReport "Etat-Requ=EAte-Schema-
ResultatsMetrique", acViewNormal, , "[rapport] =3D " &=20
VariableNum=E9ro, acDialog
DoCmd.OpenReport "Etat-Schema-ResultatsMetrique",=20
acViewNormal, , "[rapport] =3D " & VariableNum=E9ro, acDialog
DoCmd.OpenReport "Requ=EAte-Page_index",=20
acViewNormal, , "[rapport] =3D " & VariableNum=E9ro, acDialog
DoCmd.OpenReport "Schema",=20
acViewNormal, , "[rapport] =3D " & VariableNum=E9ro, acDialog
DoEvents
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport]=20
=3D " & VariableNum=E9ro
DoEvents
DoCmd.PrintOut acSelection, , , , 5 ' 5 copies
DoEvents
DoCmd.Close acForm, "Projets"
=20
=20
Exit_Commande91_Click:
Exit Sub

Err_Commande91_Click:
MsgBox Err.Description
Resume Exit_Commande91_Click
=20
End Sub

Dit moi ce qui ne va pas.. si tu te souviens bien je=20
voulais avoir un bouton qui prendrait chacun de mes=20
diff=E9rents formulaires ou =E9tats r=E9unis dans les tables=20
par un no de rapport et pouvoir en faire une impression=20
en une seule fois..

J'attends de tes nouvelles si tu y comprends quelque=20
chose :)

Merci
Sady

10 réponses

1 2
Avatar
Eric
Bonjour Sady

Je ne crois pas que la commande OpenReport accepte 5 arguments, du moins
sous Access2000
DoCmd.OpenReport nométat[, affichage][, nomfiltre][, conditionwhere]

De plus tu délares Dim VariableNuméro As Long
et tu saisis le numero par une InputBox qui retourne toujours une valeur
de type String.
Donc aprés avoir testé le contenu de l'inputbox, il faut convertir cette
valeur en Long
Tu devrais faire:
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)

A quoi sert la variable Schema ?
Je ne suis pas sur que tu aies besoin de la commande DoEvents.
Dans ton cas, les états seront empilés les uns dessus les autres.
De plus la commande DoCmd.PrintOut ... telle qu'elle est placée risque de
n'imprimer que 5 exemplaires du même rapport (ici le dernier) mais je
n'ai pas vérifié.


A+
Eric

"Sady" écrivait news:5bd301c42d8d
$2aa8f110$:

Bonsoir Raymond,

je m'amuse avec mes impressions mais ca fonctionne pas je
comprends pas pourquoi.. voici mon code comme tu me l'as
montré:

Private Sub Commande91_Click()
On Error GoTo Err_Commande91_Click

Dim VariableNuméro As Long
Dim Schema As Long
VariableNuméro = InputBox("Entrer le numéro du
rapport")

DoCmd.OpenReport "Projets",
acViewNormal, , "[rapport] = " & VariableNuméro, acDialog
DoCmd.OpenReport "Etat-Requête-Moteur-Index",
acViewNormal, , "[rapport] = " & VariableNuméro, acDialog
DoCmd.OpenReport "Etat-Requête-Schema-
ResultatsMetrique", acViewNormal, , "[rapport] = " &
VariableNuméro, acDialog
DoCmd.OpenReport "Etat-Schema-ResultatsMetrique",
acViewNormal, , "[rapport] = " & VariableNuméro, acDialog
DoCmd.OpenReport "Requête-Page_index",
acViewNormal, , "[rapport] = " & VariableNuméro, acDialog
DoCmd.OpenReport "Schema",
acViewNormal, , "[rapport] = " & VariableNuméro, acDialog
DoEvents
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport]
= " & VariableNuméro
DoEvents
DoCmd.PrintOut acSelection, , , , 5 ' 5 copies
DoEvents
DoCmd.Close acForm, "Projets"


Exit_Commande91_Click:
Exit Sub

Err_Commande91_Click:
MsgBox Err.Description
Resume Exit_Commande91_Click

End Sub

Dit moi ce qui ne va pas.. si tu te souviens bien je
voulais avoir un bouton qui prendrait chacun de mes
différents formulaires ou états réunis dans les tables
par un no de rapport et pouvoir en faire une impression
en une seule fois..

J'attends de tes nouvelles si tu y comprends quelque
chose :)

Merci
Sady



Avatar
Eric
re,

Je n'avais pas lu jusqu'au bout correctement

Le DoCmd.PrintOut se trouvant derriere le DoCmd.openForm ... tu risques
d'imprimer le formulaire en 5 exemplaires et non les états en 5
exemplaires.

Donc je mettrai:
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)
' Si tu veux tous les états et le formulaire en 5 exemplaires
DoCmd.OpenReport "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.PrintOut acSelection, , , , 4 ' 5 copies-1 obtenue déjà avec
le docmd.openreport
DoCmd.OpenReport "Etat-Requête-Moteur-Index", acViewNormal, ,
"[rapport] = " & VariableNuméro
DoCmd.PrintOut acSelection, , , , 4 ' 5 copies -1 obtenue déjà avec
le docmd.openreport
...
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.PrintOut acSelection, , , , 5 ' 5 copies
DoCmd.Close acForm, "Projets"

Dit moi ce qui ne va pas.. si tu te souviens bien je
voulais avoir un bouton qui prendrait chacun de mes
différents formulaires ou états réunis dans les tables
par un no de rapport et pouvoir en faire une impression
en une seule fois..




Tu as mis ces rapports dans une table, du moins les noms ? car la on
pourrait faire différemment ou tu voulais dire états et formulaires basés
sur des tables.

A+
Eric


Avatar
Raymond [mvp]
Bonjour.

deux remarques:
il serait bon de déclarer VariableNuméro en string, mais ça ne change rien
dans le résultat.
le acdialog n'est supporté qu'à partir de 2002. vérifier les versions
utilisées.
sinon tout est bon.
si tu ne vois toujours pas, passe moi ta base en zip obligatoire et enlève
XYZ. dans l'adresse mail.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sady" a écrit dans le message de
news:5bd301c42d8d$2aa8f110$
Bonsoir Raymond,

je m'amuse avec mes impressions mais ca fonctionne pas je
comprends pas pourquoi.. voici mon code comme tu me l'as
montré:

Dit moi ce qui ne va pas.. si tu te souviens bien je
voulais avoir un bouton qui prendrait chacun de mes
différents formulaires ou états réunis dans les tables
par un no de rapport et pouvoir en faire une impression
en une seule fois..

J'attends de tes nouvelles si tu y comprends quelque
chose :)

Merci
Sady
Avatar
Sady
Salut Eric,

bon je n'ai pas besoin d'avoir 5 exemplaires mais plutot
j'ai 5 formulaires différents qui se réfère a une même
chose un no de rapport. C'est formulaires forment le
rapport qui sera imprimé et relier tel que souhaité par
l'employeur. Voila ce que je cherche a obtenir. Mais
n'étais pas trop familière avec VB je ne comprends pas
toujours bien ce que vous m'expliquez. J'ai mis la
variable Schema croyant avoir besoin d'une variable pour
chacun de mes formulaires et/ou états.

Je vais maintenant essayé ton code ..

Merci infiniment vous me sauver la vie les gars en
m'aidant :)
Sady
-----Message d'origine-----
re,

Je n'avais pas lu jusqu'au bout correctement

Le DoCmd.PrintOut se trouvant derriere le
DoCmd.openForm ... tu risques

d'imprimer le formulaire en 5 exemplaires et non les
états en 5

exemplaires.

Donc je mettrai:
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)
' Si tu veux tous les états et le formulaire en 5
exemplaires

DoCmd.OpenReport "Projets",
acViewNormal, , "[rapport] = " &

VariableNuméro
DoCmd.PrintOut acSelection, , , , 4 ' 5 copies-1
obtenue déjà avec

le docmd.openreport
DoCmd.OpenReport "Etat-Requête-Moteur-Index",
acViewNormal, ,

"[rapport] = " & VariableNuméro
DoCmd.PrintOut acSelection, , , , 4 ' 5 copies -1
obtenue déjà avec

le docmd.openreport
....
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport]
= " &

VariableNuméro
DoCmd.PrintOut acSelection, , , , 5 ' 5 copies
DoCmd.Close acForm, "Projets"

Dit moi ce qui ne va pas.. si tu te souviens bien je
voulais avoir un bouton qui prendrait chacun de mes
différents formulaires ou états réunis dans les
tables



par un no de rapport et pouvoir en faire une
impression



en une seule fois..




Tu as mis ces rapports dans une table, du moins les
noms ? car la on

pourrait faire différemment ou tu voulais dire états et
formulaires basés

sur des tables.

A+
Eric




.





Avatar
Eric
re,

Le problème c'est d'editer tes 5 états et ton formulaire, c'est bien ca ?

Car si c'est le cas, on peut faire plus simple.

Private Sub Commande91_Click()
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)
DoCmd.OpenReport "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.OpenReport "Etat-Requête-Moteur-Index", acViewNormal, ,
"[rapport] = " & VariableNuméro
......... idem pour les 3 autres
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.PrintOut
DoCmd.Close acForm, "Projets"
End Sub

Ca marche pas ça ? Testes et dis moi.

Eric



"Sady" écrivait n

Salut Eric,

bon je n'ai pas besoin d'avoir 5 exemplaires mais plutot
j'ai 5 formulaires
ou plutot d'après ton code 5 états et 1 formulaire

différents qui se réfère a une même
chose un no de rapport. C'est formulaires forment le
rapport qui sera imprimé et relier tel que souhaité par
l'employeur. Voila ce que je cherche a obtenir. Mais
n'étais pas trop familière avec VB je ne comprends pas
toujours bien ce que vous m'expliquez. J'ai mis la
variable Schema croyant avoir besoin d'une variable pour
chacun de mes formulaires et/ou états.

Je vais maintenant essayé ton code ..

Merci infiniment vous me sauver la vie les gars en
m'aidant :)
Sady


Avatar
Raymond [mvp]
Bonsoir Eric.

ça ne marchera surement pas car [rapport] est un champ texte de 50
caractères et se nomme en réalité [no rapport] et dans d'autres requêtes
c'est un autre nom encore.

réponse donnée par mail:

J'ai modifié le code , compare le bien avec le tien pour comprendre
j'ai supprimé tous les critères de "no rapport" dans les requêtes
il en reste encore à la fin mais je pense que tu vas les trouver, car il n'y
a pas les mêmes noms de champs
j'ai mis les rapports en preview pour ne pas gaspiller du papier en test.

les modifs actuelles devraient te guider pour la suite.


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
re,

Le problème c'est d'editer tes 5 états et ton formulaire, c'est bien ca ?

Car si c'est le cas, on peut faire plus simple.

Private Sub Commande91_Click()
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)
DoCmd.OpenReport "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.OpenReport "Etat-Requête-Moteur-Index", acViewNormal, ,
"[rapport] = " & VariableNuméro
......... idem pour les 3 autres
DoCmd.OpenForm "Projets", acViewNormal, , "[rapport] = " &
VariableNuméro
DoCmd.PrintOut
DoCmd.Close acForm, "Projets"
End Sub

Ca marche pas ça ? Testes et dis moi.

Eric


Avatar
Sady
Eric,

non ca fontionne pas il me fait une erreur de syntaxe ?!

Sady
-----Message d'origine-----
re,

Le problème c'est d'editer tes 5 états et ton
formulaire, c'est bien ca ?


Car si c'est le cas, on peut faire plus simple.

Private Sub Commande91_Click()
Dim Numero as string
Numero=InputBox("Entrer le numéro du rapport")
If len(Numéro)=0 then Exit sub
VariableNuméro =CLng(Numero)
DoCmd.OpenReport "Projets",
acViewNormal, , "[rapport] = " &

VariableNuméro
DoCmd.OpenReport "Etat-Requête-Moteur-Index",
acViewNormal, ,

"[rapport] = " & VariableNuméro
......... idem pour les 3 autres
DoCmd.OpenForm "Projets",
acViewNormal, , "[rapport] = " &

VariableNuméro
DoCmd.PrintOut
DoCmd.Close acForm, "Projets"
End Sub

Ca marche pas ça ? Testes et dis moi.

Eric



"Sady" écrivait n

Salut Eric,

bon je n'ai pas besoin d'avoir 5 exemplaires mais
plutot


j'ai 5 formulaires
ou plutot d'après ton

code 5 états et 1 formulaire

différents qui se réfère a une même
chose un no de rapport. C'est formulaires forment le
rapport qui sera imprimé et relier tel que souhaité
par


l'employeur. Voila ce que je cherche a obtenir. Mais
n'étais pas trop familière avec VB je ne comprends pas
toujours bien ce que vous m'expliquez. J'ai mis la
variable Schema croyant avoir besoin d'une variable
pour


chacun de mes formulaires et/ou états.

Je vais maintenant essayé ton code ..

Merci infiniment vous me sauver la vie les gars en
m'aidant :)
Sady



.




Avatar
Eric
Bonsoir Raymond

Bah, je comprends alors la confusion du départ où il est défini une
variable en Long puis apres via l'InputBox on s'efforce d'affecter du texte
à une donnée numérique ...

De tout façon, si tu as eu le code en main, je suis sur que le retour est
PARFAIT.

Par contre, le fait que [rapport] ait une longueur de 50 caractères a une
incidence sur un critere de recherche ?

A+
Eric


"Raymond [mvp]" écrivait

Bonsoir Eric.

ça ne marchera surement pas car [rapport] est un champ texte de 50
caractères et se nomme en réalité [no rapport] et dans d'autres
requêtes c'est un autre nom encore.

réponse donnée par mail:

J'ai modifié le code , compare le bien avec le tien pour comprendre
j'ai supprimé tous les critères de "no rapport" dans les requêtes
il en reste encore à la fin mais je pense que tu vas les trouver, car
il n'y a pas les mêmes noms de champs
j'ai mis les rapports en preview pour ne pas gaspiller du papier en
test.

les modifs actuelles devraient te guider pour la suite.




Avatar
Raymond [mvp]
Par contre, le fait que [rapport] ait une longueur de 50 caractères a une
incidence sur un critere de recherche ?
la seule incidence c'est les apostrophes à ne pas oublier.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Bonsoir Raymond

Bah, je comprends alors la confusion du départ où il est défini une
variable en Long puis apres via l'InputBox on s'efforce d'affecter du
texte

à une donnée numérique ...

De tout façon, si tu as eu le code en main, je suis sur que le retour est
PARFAIT.

Par contre, le fait que [rapport] ait une longueur de 50 caractères a une
incidence sur un critere de recherche ?

A+
Eric



Avatar
Eric
Par contre, le fait que [rapport] ait une longueur de 50 caractères a
une incidence sur un critere de recherche ? la seule incidence c'est
les apostrophes à ne pas oublier.



Non pas dans un n° de rapport quand même ;-)

C'est bien vrai car souvent par économie de touches (pour ne pas dire
flemme) on a souvent tendance à mettre des quotes au lieu de doubler les
guillemets, alors que dans les données d'entreprise, il y a souvent des '.

Eric


1 2