Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1133 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Changer d'imprimante en VBA sous Access 2000

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changer d'imprimante en VBA sous Access 2000

n°2052779
alexbigfou​g
Posté le 28-01-2011 à 19:36:53  profilanswer
 

Bonsoir tous le monde !
 
 
Voilà en faite je souhaiterai pouvoir choisir dans une liste déroulante une des imprimantes à mettre en imprimante par défaut.
Ce qui éviterai aux utilisateurs d'aller dans Démarrer --> Paramètre ---> imprimantes et télécopieur ---> XXX définir comme imprimante par défaut
 
J'ai déjà tenté plusieurs chose, mais sans succès.
 
Le Dim imprimante as printer ne fonctionne pas sous access 2000...
 
Je vous remercie d'avance de votre aide.

mood
Publicité
Posté le 28-01-2011 à 19:36:53  profilanswer
 

n°2052827
kiki29
Posté le 28-01-2011 à 22:37:24  profilanswer
 
n°2053212
alexbigfou​g
Posté le 31-01-2011 à 14:35:40  profilanswer
 

Encore merci kiki29 !!
 
Avec les liens que tu m'as donné j'ai pu bidouiller un code.
 
Pour obtenir l'imprimante par défaut ainsi que les autres imprantes sur le réseau j'ai utilisé ce code:
 

Citation :


 
Private Declare Function EnumPrintersA Lib "Winspool.drv" (ByVal flags As Long, ByVal Name As String, ByVal Level As Long, pPrinterEnum As Long, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long  
Private Declare Function lstrlenA Lib "Kernel32" (ByVal lpString As Any) As Long  
Private Declare Function lstrcpyA Lib "Kernel32" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long  
 
Private Function Imprimantes()  
  Dim PrinterEnum() As Long, Impr() As String  
  Dim Needed As Long, Returned As Long, i As Integer  
  EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0  
  If Needed = 0 Then Exit Function  
  ReDim PrinterEnum(Needed / 4)  
  EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), _  
  Needed, Needed, Returned  
  ReDim Impr(1 To Returned)  
  For i = 1 To Returned  
    Impr(i) = Space$(lstrlenA(PrinterEnum(i * 5 - 5)))  
    lstrcpyA Impr(i), PrinterEnum(i * 5 - 5)  
  Next i  
  Imprimantes = Impr  
End Function  
 
Sub ListeImprimante()  
 
Dim Impr  
Dim source as integer
For Each Impr In Imprimantes  
    source = source + Impr & ";" 'la liste des imprimante en contenue dans la liste.
    Liste_imprimante.RowSource = source
Next  
End Sub  


 
Et pour modifier l'imprimante par défaut celui-ci:
 

Citation :


Private Declare Function aht_apiWriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal strAppName As String, ByVal strKeyName As String, ByVal strValue As String) As Integer
 
 
Private Sub Liste_imprimante_AfterUpdate()
 
ahtSetDefaultPrinter = (aht_apiWriteProfileString("Windows", "Device", Liste_imprimante.Value <> 0)
Call ListeImprimante
 
End Sub
 



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Changer d'imprimante en VBA sous Access 2000

 

Sujets relatifs
[VBA Excel] Afficher message lorsque ...[VBA Excel] Macro
Ajouter un champ DE lors d'un envoi de mail en VBA ?Détection d'un séparateur de colonne quelconque (VBA Excel)
[VBA WORD] Liste deroulante avec source ExcelModule de conversion de code barre code pour Access
[VBa Excel]Programme gestion d'absence[VBA] Equivalent du .GetOpenFilename dans Word
[VBA] faisabilité[VBA access] Copie de graphique Access vers Excel
Plus de sujets relatifs à : Changer d'imprimante en VBA sous Access 2000


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR