Comment résoudre cette erreur 2486?

praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011 - 5 juil. 2011 à 10:29
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011 - 6 juil. 2011 à 09:44
Bonjour,

Je suis assez.. paniqué
Je dois finir un projet bientôt et j'ai une erreur qui m’empêche d'imprimer plusieurs fois à la suite..
J'utilise ce code qui ouvre Access, selectionne mon Etat en preview et l'utilisateur clic sur imprimer.
Ensuite il ferme Access mais quand il veux refaire une impression : j'ai ce problème !

Dim A As Access.Application
Dim Num, fiche As String
Set A = CreateObject("Access.Application")
A.OpenCurrentDatabase App.Path & "\CirqueDB97.mdb"
box1 = MsgBox("voulez vous imprimer la réservation?", vbQuestion + vbYesNo, "Imprimer?")
    If box1 = vbYes Then
        A.Visible = True
        DoCmd.OpenReport "requête1", acViewPreview
        A.DoCmd.Maximize
end if


J'espère que vous pourrez m'éclairer..
Merci =)

PS : J'ai déjà testé de creer une fonction dans un module comme le dise plusieurs forum mais je ne sais pas si je fais mal ou pas mais Ca ne MARCHE PAS ^^"

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 11:22
Bonjour,

Ferme ta base entre deux opérations ou mets des expressions conditionnelles pour ne pas ouvrir ce qui est déjà ouvert.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 11:29
et n'oublie pas de libérer ta mémoire (in fine ou en chemin, selon ce que tu vas décider entre les 2 choix possibles) par un
Set A = Nothing


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
5 juil. 2011 à 11:44
Oui mais alors voila ^^

Si je fais un A.closecurrentbase suivis d'un Set A = nothing
Ma base s'ouvre et se ferme directement. Donc je ne vois pas mon Etat..
Comment je peux faire en sorte de mettre une condition qui dit que si l'utilisateur n'a pas quitter Access (donc na pas fini son impression) alors je ne ferme pas ma base
0
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
5 juil. 2011 à 11:53
Re,

Alors j'ai tester ceci :

box1 = MsgBox("voulez vous avoir un aperçu de la réservation?", vbQuestion + vbYesNo, "Imprimer?")
    If box1 = vbYes Then
        A.Visible = True
         DoCmd.OpenReport "requête1", acViewPreview
        A.DoCmd.Maximize
 box1 = MsgBox("Avez-vous imprimer la réservation?", vbQuestion + vbYesNo, "Imprimer?")
 If box1 = vbYes Then
A.CloseCurrentDatabase
Else
box1 = MsgBox("L'aperçu de la réservation va être fermé", vbInformation + vbOKOnly, "Aperçu")
A.CloseCurrentDatabase
End If
End If


Et il me met un message d'erreur comme quoi "l'expression entrée fait reference a un objet fermé ou supprimé"..
Si il est supprimé pourquoi alors j'ai le problème qu'une action est déjà en cours >.<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juil. 2011 à 12:41
1)
Il me parait clair (aurais-je un esprit plus clairvoyant ?) et logique (aurais-je un esprit logique ?) que la décision de fermer la base ne doit intervenir qu'après son exploitation totale.
2) une msgbox est modale. L'est donc ta :
box1 = MsgBox("Avez-vous imprimer la réservation?", vbQuestion + vbYesNo, "Imprimer?")


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
5 juil. 2011 à 13:09
euh... j'ai pas compris grand chose...
Si j'ai fais ça c étais juste pour tester la fermeture de la base seulement quand l'utilisateur à fini.

Donc je récapitule :

Il ouvre sa BDD plus particulièrement il affiche son Etat.
Il imprime.
Il clic sur la "croix" pour fermer Access et continue ses affaires sur mon appli.
Seulement si il refais une impression l'action ne peut être exécuter pour l'instant.

Comment dois-je fermer ma base de donnée alors?

petite précision qui peut être utile, je ne sais pas :
Dans cette même form j'ouvre ma base de donnée pour effectuer quelques requêtes est-ce qu'il y a un rapport?
=>
Private Sub Form_Load()

Set base = OpenDatabase(App.Path + "\mabasededonnée")


Ce n'est pas le même type d'ouverture; gênant?
0
praetor62 Messages postés 35 Date d'inscription dimanche 19 décembre 2010 Statut Membre Dernière intervention 14 juillet 2011
6 juil. 2011 à 09:44
Vous n'auriez pas une réponse plus précise?

Parce que fermer la base : Oui mais quand je fais ça, il me dit que l'objet a déjà été fermé ou supprimé.
Dans tous les cas je n'y arrive pas...

Plz une réponse..
0
Rejoignez-nous