Bonjour,

Ici, PrintOlder me sauvegarde le nom d'imprimante défaut à l'ouverture du formulaire menu général, et lorsque je quitte ce dernier et donc l'appli, je veux switcher vers cette PrintOlder, au cas où l'imprimante par défaut s'est modifié au cours de l'utilisation de l'outil par un user.

[Pour rappel, getdefaultprinter récupère le nom de l'imprimante par défaut, et "SwitchDefaultPrinter(AutreImprimante" as string) détermine AutreImprimante comme Imprimante par défaut.
Ces fonctions fonctionnent très bien sur mon appli, au sein d'1 fonction PDF d'un module, lorsque je veux sortir un pdf d'un état par exemple. ]

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
Option Compare Database
Option Explicit
Public PrintOlder As String
 
Public Sub Form_Open(Cancel As Integer)
'Call Initialisation sert pour autre chose
PrintOlder = getdefaultPrinter
Msgbox "" & PrintOlder & ""
End Sub
 
Private Sub Form_Close() 'en cas de variations successives d'impr par default, on va récupérer l'imprimante par défaut à l'ouverture de fichier>plus de pb
Msgbox "" & PrintOlder & ""
SwitchDefaultPrinter PrintOlder
Msgbox "" & PrintOlder & ""
End Sub
J'aimerais que lorsque je quitte mon fichier Access, l'imprimante par défaut lors de l'ouverture se rétablisse.
Ici j'ai 2 sub, et donc ma variable PrintOlder se différencie entre les 2 Sub, c'est là le problème.
A la fermeture, mon PrintOlder devient vide, il n'y a plus d'impr par défaut. Je sais que le problème est que PrintOlder est une variable. Mais comment faire pour que ce soit une variable qui une fois qu'elle reçoit l'imprimantepardefaut, ne puisse plus être modifiée comme une constante? La réponse doit être simple, mais j'ai essayé tout ce que je savais...