Le grenier Access

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 18 novembre 2009

Imprimer plusieurs étiquettes identiques en nombre variable

Dans l'article Imprimer plusieurs étiquettes identiques, il était question d'imprimer des étiquettes Clients en exemplaires multiples, mais le nombre d'exemplaires était le même pour tous les clients. Dans cette page, on va aménager le principe pour que le nombre d'étiquettes puisse varier selon le client. De cette manière, vous allez pouvoir imprimer 3 étiquettes pour le client Tartempion, et 7 pour le client Trucmuche.

Lire la suite...

mardi 17 novembre 2009

Imprimer plusieurs étiquettes identiques

A partir d'un état qui imprime une planche d'étiquettes, comment faire en sorte que chaque étiquette soit imprimée plusieurs fois ?

Lire la suite...

vendredi 20 mars 2009

Obtenir la liste des imprimantes

Comment lister les imprimantes disponibles ?

Solution

Depuis Access 2002, Access fournit une collection Application.Printers qui donne la liste des imprimantes disponibles sur votre machine, et un objet Printer qui décrit une imprimante. Voici une boucle qui parcourt la collection Printers et qui affiche la liste des imprimantes dans la fenêtre Exécution :

Sub ListerImprimantes()
  Dim prt As Access.Printer

  For Each prt In Application.Printer
    Debug.Print prt.DeviceName
  Next
End Sub

Au lieu d'afficher les résultats dans la fenêtre Exécution, il peut être intéressant d'ajouter les noms d'imprimantes dans une liste déroulante. Dans ce cas, remplacez le Debug.Print par un cmbImprimantes.AddItem prt.DeviceName (si cmbImprimantes est le nom de votre liste déroulante). Consultez l'article Ajouter un élément statique à une liste déroulante pour plus d'infos.

Info
Une imprimante est caractérisée par de nombreuses autres propriétés. Utilisez l'Explorateur d'objets (touche F2) pour les obtenir.

lundi 13 octobre 2008

Imprimer sélectivement en PDF sous Access 2007

L'impression en PDF fait couler beaucoup d'encre (numérique, heureusement, ça ne pollue pas :-)) sur ce blog. Voir notamment les autres articles consacrés à ce thème. Une question revient souvent : comment, sur Access 2007, choisir les pages à imprimer avant la conversion en PDF ?

Lire la suite...

jeudi 5 juin 2008

Imprimer un état sur 2 imprimantes en 1 opération

Je souhaiterais qu'un même état soit systématiquement imprimé sur 2 imprimantes différentes. Comment faire ?

Le code

Depuis Access 2002, il est possible de manipuler directement l'imprimante associée à un état, grâce à la méthode Report.Printer. C'est ce que fait le code ci-dessous (à recopier dans un module standard d'Access).

' ---
' IMPRESSION D'UN ETAT SUR 2 IMPRIMANTES
' ---
Sub DoubleImpression( _
    ByVal strNomEtat As String, _
    ByVal strImprimante1 As String, _
    ByVal strImprimante2 As String)
   
' On ouvre l'état en mode caché
On Error GoTo DoubleImpressionErr
DoCmd.OpenReport strNomEtat, acViewPreview, , , acHidden

' On change l'imprimante de l'état, puis on imprime
Set Reports(strNomEtat).Printer = _
  Application.Printers(strImprimante1)
DoCmd.OpenReport strNomEtat, acViewNormal, , , acHidden

' Idem avec l'imprimante 2
Set Reports(strNomEtat).Printer = _
  Application.Printers(strImprimante2)
DoCmd.OpenReport strNomEtat, acViewNormal, , , acHidden

' On ferme l'état
DoCmd.Close acReport, strNomEtat, acSaveNo
Exit Sub

DoubleImpressionErr:
    MsgBox "Erreur d'impression : " & Err.Description, _
      vbCritical, "Impression"
    Exit Sub
End Sub
Info
L'état doit être ouvert avant qu'on puisse modifier son imprimante. D'où le double OpenReport pour chaque impression : le premier pour ouvrir l'état, le second pour l'imprimer.

Utiliser le code

Pour tester la procédure DoubleImpression :

  1. Faites apparaître la fenêtre Exécution (CTRL + G).
  2. Tapez :
    DoubleImpression "Nom de votre état", "Nom de l'imprimante 1", "Nom de l'imprimante 2"
  3. Puis validez par la touche [Entrée].
L'idéal est ensuite de placer cette ligne de test dans l'événement Sur clic d'un bouton de commande, par exemple.
Les noms d'imprimantes sont ceux que vous trouvez dans votre panneau de configuration Windows. Il peut s'agir d'imprimantes locales ou réseau comme \\serveur\HP LaserJet.

mercredi 7 mai 2008

Automatiser l'impression d'un état en PDF sous Access 2007

On continue la série "Access et le format PDF" ! Dans un précédent article, il a été question d'automatiser en VBA, sous Access 2003 maximum, et à l'aide de PDFCreator. Mais comment fait-on avec Access 2007 ?

Access 2007 et les PDF

A priori, le code donné dans l'article précédent doit fonctionner également sous Access 2007. Mais le pack Office 2007 comporte également une impression PDF (voir cet autre article du blog). Autant l'utiliser directement, ça fera moins de code à écrire !

Voici comment transformer un état en PDF sous Access 2007 (à supposer que l'extension PDF ait été installée) :

Sub TestPDF2007()
  DoCmd.OutputTo acOutputReport, "rpt Clients", _
    acFormatPDF, Environ("USERPROFILE") & "\Documents\Liste des clients.pdf"
End Sub

Quelques infos complémentaires :

  • Le nom de l'état, dans l'exemple, est rpt Clients.
  • Le format PDF est défini par la constante acFormatPDF.
  • Le dernier paramètre de l'exemple est le chemin complet du fichier PDF à générer. Ici, un fichier Liste des clients.pdf va être créé, et il sera placé dans le dossier Documents de l'utilisateur en cours (ce dossier est donné par \Documents\ sous Vista, et \Mes documents\ sur un XP français). On pourrait améliorer ça, mais le but n'est pas de charger le code ici ;-)
  • Si vous ajoutez un 4ème paramètre avec la valeur True, le fichier PDF s'ouvre automatiquement dans Acrobat Reader, après avoir été généré.

Automatiser l'impression d'un état en PDF via PDFCreator

Dans l'article Imprimer en PDF avec PDFCreator, vous avez pu voir comment, manuellement, transformer un état Access en document PDF. Et si maintenant on automatisait la procédure à l'aide de Visual Basic ?

Lire la suite...

jeudi 1 novembre 2007

Imprimer en PDF avec PDFCreator

Je voudrais transmettre un état Access à quelqu'un d'autre (par e-mail, notamment). Quel est la meilleure solution ?

Transmettre un état : le problème

Un état peut avoir une mise en forme un peu complexe : polices, couleurs, encadrements, images... Lorsque vous l'imprimez directement, il n'y a pas de problème particulier. Mais si vous l'exportez dans d'autres formats (RTF par exemple), vous risquez de perdre une (bonne ?) partie de la mise en page. Il y a plusieurs parades possibles :

  • Transmettre votre état au format Snapshot (extension .snp).
    Avantage : la solution est intégrée à Access, depuis déjà plusieurs versions.
    Inconvénient : votre interlocuteur doit installer un logiciel spécifique (la "visionneuse" Snapshot Viewer) pour consulter les fichiers .snp. Cette visionneuse est gratuite, mais il faut quand même la télécharger, l'installer, etc. Par ailleurs, Snapshot Viewer ne fonctionne que sous Windows.
  • Transmettre votre état au format PDF (extension .pdf).
    Avantage : tout le monde dispose sur sa machine de la visionneuse Acrobat Reader.
    Inconvénient : l'impression en PDF n'est pas intégrée à Access, ni à Office, d'une manière générale. Sauf...

Imprimer PDF sous Office 2007

Si vous utilisez Office 2007, l'impression PDF est enfin disponible sur cette version. Vous pouvez donc oublier la suite de cet article ; allez plutôt lire cette page.

Imprimer PDF sous Office 2003 et inférieur

Le principe général consiste à installer une imprimante PDF sur votre ordinateur. Il existe des solutions payantes comme Adobe Acrobat, AvantQuest eXpert PDF... et aussi des solutions gratuites comme Ghostscript ou PDFCreator. J'ai écrit il y a quelque temps un article sur l'installation et le paramétrage de Ghostscript. Depuis, PDFCreator est apparu, et il simplifie énormément l'utilisation de Ghostscript (qui est utilisé "en arrière-plan"). On va donc utiliser PDFCreator ici :
  1. Téléchargez PDFCreator (sans espace) à cette adresse http://sourceforge.net/projects/pdfcreator/
    Je rappelle que le logiciel est gratuit.
  2. Installez le logiciel sur votre machine.
    L'opération ajoute une imprimante virtuelle à votre ordinateur. Au lieu d'imprimer "physiquement sur papier", cette imprimante transforme les ordres d'impression en commandes PDF. Le résultat n'est plus une page papier, mais un document PDF.
  3. Vous pouvez ensuite imprimer dans Access (ou dans n'importe quel logiciel) par la commande classique Fichier / Imprimer.
    Consultez le screencast de ce billet pour une démo.
Info
PDFCreator peut également être programmé, en VBA notamment. Ca veut dire qu'on peut automatiser l'impression d'un état en PDF à partir d'Access. Un autre article bientôt ?

mercredi 17 octobre 2007

Plus de chiffres dans les états !

Sous Access 2000, mes états n'affichent aucun chiffre. What's up, doc ?

Solution

Consultez cette page du site Microsoft, elle devrait vous dépanner : http://support.microsoft.com/kb/469516/fr

mercredi 5 septembre 2007

Access 2007 et les fichiers PDF

Peut-on exporter un état Access au format PDF (Acrobat Reader) ?

Oui ! Le pack Office 2007 prend enfin en charge le format PDF. Vous pouvez donc transformer en PDF vos documents Word, Excel, et surtout Access en ce qui nous concerne.

C'est l'un des points intéressants de ce nouveau pack : vous pouvez désormais transférer un état Access à quelqu'un d'autre, sans perdre la mise en forme.

Note
Si vous utilisez une version antérieure d'Access, consultez cet autre article du grenier.

Installer le complément XPS/PDF

En fait, la prise en charge du format PDF n'est pas installée par défaut avec le pack Office. Il faut donc commencer par installer un complément logiciel avant toute chose (l'opération n'est à faire qu'une seule fois, et le complément sera disponible pour le reste du pack Office, heureusement !).

La première solution consiste à démarrer Access, à cliquer sur le bouton Office (le logo Office rond, en haut à gauche de l'écran), puis à choisir Imprimer. Vous trouverez une option pour installer le complément.

Sinon :

  1. Connectez-vous au Centre de téléchargement Microsoft.
  2. Effectuez une recherche sur les mots-clés pdf office 2007.
    Vous accédez à la page du "Complément Microsoft Office 2007 - Enregistrement en XPS ou PDF".
  3. Vous devrez probablement passer par une étape d'installation d'un ActiveX nommé "Office Genuine Advantage" sur votre machine, dont le rôle est de vérifier l'authenticité de votre équipement.
  4. Dans la boîte qui se présente ensuite, cliquez sur le bouton Enregistrer. Faites en sorte que le fichier à télécharger soit placé dans votre dossier Documents.
  5. Quittez tous les logiciels en cours d'exécution, et double-cliquez sur le fichier téléchargé précédemment (SaveAsPDFAndXPS.exe). Suivez les étapes d'installation.
Autre méthode
Vous pouvez également démarrer Access, cliquer sur le bouton Office, puis sur Enregistrer sous / Rechercher des compléments pour d'autres formats de fichiers. L'ensemble de la procédure est sensiblement identique...

Imprimer en PDF

A partir de maintenant, vous pouvez imprimer n'importe quoi (dont les états Access) en PDF.
  • Une option de menu est disponible dans le bouton Office / Publier.
  • D'autre part,Une icône PDF ou XPS s'affiche sur le ruban, lorsque le contexte le permet (lorsque vous avez ouvert un état, notamment).

Attention
Pour ceux qui auraient lu trop vite : je rappelle que la procédure s'applique à Office 2007 uniquement. Ce n'est donc pas la solution pour imprimer en PDF dans les versions 2003 et précédentes !

- page 1 de 3