Problème de code IF et report ?

Signaler
Messages postés
30
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
9 mai 2003
-
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
J'ai un formulaire "Imprimer"
avec des cases à cocher "Listing 1" ; "Listing 2" ; "Listing 3" ;
un bouton apercu... qui ouvre: l'état correspondant au choix de l'utilisateur
un petit formulaire "Navigation" contenant deux boutons -> Fermer et Imprimer
qui réduit le formulaire "Imprimer"

Je voudrais savoir ou est le problème avec ce code ... (Je connais rien au VBA, donc je bidouille !)

Code du petit formulaire "Navigation"

Private Sub imprimer_Click()

'Imprimer l'état Listing_1
If "Listing_1" = True Then
DoCmd.OpenReport "Listing_1", acNormal
End If

'Imprimer l'état Listing_2
If "Listing_2" = True Then
DoCmd.OpenReport "Listing_2", acNormal
End If

'Imprimer l'état Listing_3
If "Listing_3" = True Then
DoCmd.OpenReport "Listing_3", acNormal
End If

End Sub
------------------------------------------------

Private Sub fermer_Click()

'Fermer les états ouverts
DoCmd.Close acReport, "Listing_1"
DoCmd.Close acReport, "Listing_2"
DoCmd.Close acReport, "Listing_3"

'Sélectionner le formulaire Imprimer pour le rendre actif
DoCmd.SelectObject acForm, "Imprimer"

'Restorer le formulaire Imprimer
DoCmd.Restore

'Sélectionner le formulaire Navigation pour le rendre actif
DoCmd.SelectObject acForm, "Navigation"

'Fermer le menu de navigation
DoCmd.Close

End Sub
---------------------------------------------------------

Pour fermer y a peut-être plus simple et moins tordu mais sa marche !

Par contre pour Imprimer, j'ai l'erreur suivante:
"Erreur d'exécution '13' ; Incompatibilité de type

je pense bien savoir ou sa cloche
-> If "Listing_1" = True Then
mais je vois pas ce que je dois mettre ?
il faut peut être déclarer une variable état ? je sais pas !!
ou mettre
If Report.["Listing trié par artiste"] = True Then
DoCmd.OpenReport "Listing trié par Artiste", acNormal
End If
mais erreur 424

Quand on connait le VBA, mes codes paraissent surement stupides ! mais je passe déjà pas mal de temps sur les forums à la rehcerche de codes alors si je tatonne pas j'y arriverais jamais !

Merci d'avance deu coup de main !

Gwendal

6 réponses

Messages postés
36
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
3 septembre 2002

Pour savoir si une case est cochée, tu dois tester la fonction : "CaseACocher.value = True" et non "CaseACocher = True" toute seul...

C'était vraiment très intéressant... :big) MythoMAN dans une autre vie ! :clown)
Messages postés
30
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
9 mai 2003

en faite le petit formulaire se présente comme sa

-------------------------------------
I BP_Fermer BP_Imprimer I 8-)
------------------------------------


Il n'y a en tout et pour tout que 2 boutons . rien d'autre.

je veux imprimer l'état qui est ouvert !

j'ai un seul formulaire "Navigateur" pour 3 listing ...
c'est toutjours le même petit formulaire qui s'ouvre...
donc faut que je m'appuie sur l'état ouvert (de toute manière je me suis arrangé pour qu'il y est toujours un et un seul état d'ouvert.)

Je cherche juste le code qui permette de dire
si listing_1 ouvert alors imprimer listing_1
si listing_2 ouvert alors imprimer listing_2
si listing_3 ouvert alors imprimer listing_3
tout sa sur le BP imprimer....

Plus clair ? :dissapprove)

merci

Gwendal

L'amour est la victoire de l'imagination sur l'intelligence.
Messages postés
36
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
3 septembre 2002

Moi, j'utilise normalement la commande :
DoCmd.OpenReport pour ouvrir des états...
Ainsi, si une case est cochée dans mon formulaire, j'appelle l'état concerné... et c'est toujours celui qui est actif qui est imprimable...

En fait, je vois pas ton pb , désolé :dissapprove)

C'était vraiment très intéressant... :big) MythoMAN dans une autre vie ! :clown)
Messages postés
30
Date d'inscription
vendredi 21 juin 2002
Statut
Membre
Dernière intervention
9 mai 2003

Dans le formulaire imprimer lorsque l'utilisateur faisait son choix et cliquait sur apercu, les actions qui se déroulaient était celle-ci:
réduire le formulaire imprimer
ouvrir l'etat sélectionné
ouvrir le formulaire de navigation ! = > donc l'état n'était plus valide !

pour résoudre le problème on ma consellé de récupérer la valeur du caption validé dans le formulaire imprimer ! comment sa je sais quel état est ouvert !

si tu veux je te l'envois tu verras !

PROBLEME RESOLU !

Gwendal
L'amour est la victoire de l'imagination sur l'intelligence.
Messages postés
36
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
3 septembre 2002

Je te remercies, j'avais juste mal compris ton problème... ;)

Content que tu t'en sois sorti :big)

C'était vraiment très intéressant... :big) MythoMAN dans une autre vie ! :clown)
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
Salut les gars!
alors beaucoup de blabla pour pas grand chose...
quand on est sous Access il faut se plier à sa syntaxe.
Aussi, pour faire référence au case à cocher du formulaire, il faut écrire:
if (Me.Listing_1 = true) then docmd.OpenReport "Listing1", acNormal
Cela imprime directement le report listing1
Pas besoin de le fermer, puisqu'il ne s'ouvre pas.
Si on veut le voir en mode aperçu, il suffit d'écrire acPreview
Voilà, mais tout cela est très bien expliqué dans l'aide Access.

TBBUIM