Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo
Sommaire > Etats
        Comment exporter un état en format Word ?
        Comment annuler l'ouverture d'un état ?
        Comment exporter un état en gardant la mise en page ?
        Dans un état, comment dans le bas de page afficher la somme d'un champ du détail ?
        Comment faire du formatage conditionnel dans un état ?
        Comment afficher un état en plein écran et avec un zoom personnalisé ?
        Simuler le choix ajuster dans l'affichage d'un état.
        Comment insérer un n° de ligne dans un état ?
        Il y a une erreur lorsque je lance mon Etat : 'Alias de sortie 'Expr1' dupliqué'
        Problème d'affichage des chiffres dans les états. Les chiffres ne sont pas visible à l'ouverture, ou à l'impression.
        Compter le nombre d'enregistrements dans chaque groupe d'un état
        Comment masquer (ou réduire / ajuster la hauteur d') une section en fonction des données ?
        Dans un état Access, on trouve une boite de dialogue 'Trier / Regrouper', cette fonction est-elle programmable ?
        Comment empêcher la perte des marges d'un état ?
        Comment imprimer un état situé sur une base distante ?
        Comment choisir le mode d'affichage de mon état lorsque je l'appelle depuis un formulaire ?
        Comment ne pas perdre la mise en page d'un état ?
        Comment créer un graphique paramétrable depuis un formulaire vers un état ?
        Comment afficher un état en plein écran avec un zoom ajusté ?
        8.1. Impressions (12)
                Comment imprimer un état avec une couleur différente pour les lignes paires/impaires ?
                Comment imprimer, visualiser, modifier un état réalisé sous Access depuis VB ?
                Access 2000 n'imprime pas les chiffres sur Windows 2000 ?
                Imprimer un état sur une imprimante précise, non celle par défaut
                Comment imprimer un état en plusieurs exemplaires ?
                Comment faire pour qu'un nom de groupe dans un état s'écrive aussi sur la/les page(s) suivante(s) ?
                Comment empêcher l'impression d'une page blanche numérotée avant que mon travail ne sorte ?
                Comment imprimer un nombre voulu d'enregistrements dans un Etat ?
                Comment créer/consulter un état sans avoir d'imprimante ?
                Comment éviter les pages blanche lorsque j'imprime un état ?
                Comment imprimer un état page par page ?
                Comment éviter qu'access n'imprime l'entête de groupe en bas de page
        8.2. Trucs et Astuces (11)
                Comment Imprimer quatre états en choisissant l'imprimante une fois
                Comment multiplier un enregistrement par un nombre donné?
                Optimiser la vitesse d'affichage d'un état
                Comment insérer des lignes verticales ou créer un cadre pour l'ensemble de la page de mon état (sans dépendre de taille de la section détail) ?
                Dans mon état, Report_Activate ne se déclenche pas, donc aucune donnée de s'affiche
                Comment choisir l'imprimante avec laquelle on va imprimer ?
                Comment visualiser mon etat en mode paysage ?
                Comment dessiner dans un état (lignes ou autres) ?
                Comment masquer l'en-tête d'un état sur la première page de l'état ?
                Comment ouvrir une liste d'état à la suite ?
                Comment dans un Etat en mode multi colonnes avoir un titre sur toute la largeur de la page ?

precedent    sommaire    suivant   


Comment exporter un état en format Word ?
auteur : Team Access
DoCmd.OutputTo acOutputReport, "Etat Utilisateur", acFormatRTF, "c:\mes documents\tmp.doc", True 

Comment annuler l'ouverture d'un état ?
auteur : Team Access
Lorsque un état ne contient pas de données, son évènement Sur Aucune Données (NoData) est levé.

Pour annuler l'ouverture de l'état, il suffit de fixer le paramètre Cancel de la procédure Report_NoData à True.

Exemple :
Private Sub Report_NoData(Cancel As Integer)
    MsgBox "Impossible d'ouvrir l'état : aucune données à afficher",VbCritical
    Cancel = True
End Sub

Comment exporter un état en gardant la mise en page ?
auteur : Team Access
Solution 1 : il faut acquérir le logiciel Adobe Acrobat Writer, il suffit alors d'imprimer sur PDF writer.



Solution 2 : L'utilitaire Snapshot Viewer exporte votre état sur un fichier d'extension SNP. Ce fichier peut alors être envoyé comme attachement à un email. Tout ce dont le réceptionnaire a besoin, pour lire cet attachement, c'est l'utilitaire précité, sans qu'il n'ait à posséder Access.

Snapshot est téléchargeable sur le site de microsoft.


Télécharger SnapShot pour Access 97/2000/2002 : http://www.microsoft.com/downloads/details.aspx?familyid=b73df33f-6d74-423d-8274-8b7e6313edfb&displaylang=fr


Dans un état, comment dans le bas de page afficher la somme d'un champ du détail ?
auteur : Drosera
Pour obtenir une somme en bas de page, il suffit de créer un contrôle invisible dans la section détail qui contiendra la somme, puis y faire référence dans une zone de texte du pied de page.


Comment faire du formatage conditionnel dans un état ?
auteur : Team Access
Il faut utiliser l'événement Format de la zone concernée
Private Sub ZoneDetail_Format (Cancel As Integer, FormatCount As Integer) 
    If Me![ nomControle] < "0"  Then 
        Me![SourcEcr].ForeColor = 16777215 
    Else 
        Me ![SourcEcr].ForeColor = 0 
    End If 
End Sub 

Comment afficher un état en plein écran et avec un zoom personnalisé ?
auteur : Team Access
DoCmd.OpenReport "Etat Utilisateur", AcView.acViewPreview     
DoCmd.RunCommand acCmdZoom150     
DoCmd.Maximize 

Simuler le choix ajuster dans l'affichage d'un état.
auteur : Drosera
Cela permet d'atteindre la dernière page.
    Dim rpt As Report
    DoCmd.OpenReport "NomEtat", acViewPreview 
    Set rpt = Reports("NomEtat") 
    rpt.ZoomControl = 0 
    SendKeys "{end}"  '<== option pour atteindre la dernière page 
    Set rpt = Nothing 

Comment insérer un n° de ligne dans un état ?
auteur : Papy Turbo
Procédure à suivre :

- insérer un contrôle TextBox

Dans l'onglet Données de la boîte de propriétés,

- propriété Source contrôle, mettre la valeur "=1"

- dans la propriété Cumul : "Par groupe"


Il y a une erreur lorsque je lance mon Etat : "Alias de sortie 'Expr1' dupliqué"
auteur : Drosera
Cela veut dire que votre requête source essaie de renvoyer un jeu d'enregistrements avec deux colonnes ayant le même nom, et ce n'est pas possible.


Problème d'affichage des chiffres dans les états. Les chiffres ne sont pas visible à l'ouverture, ou à l'impression.
auteur : Maxence HUBICHE
Ceci concerne Access 2000. Il s'agit d'un aspect connu et recencé par Microsoft. Une clé du registre (1025) a pour valeur 'On'.
La solution consiste à la mettre à Off dans l'éditeur de registre (Démarrer/Exécuter, taper regedit, puis Cliquer OK) Voici son emplacement : HKEY_CURRENT_USERS\Software\Microsoft\Office\9.0\Common\LanguageResources\1025. Pour toute information supplémentaire à ce sujet, il est possible de se référer à la KB de microsoft à cette adresse : http://www.microsoft.com/intlkb/france/articles/F19/5/16.asp


Compter le nombre d'enregistrements dans chaque groupe d'un état
auteur : yoyo.zibou
_ Ouvrez l'état en mode Création.
_ Ajoutez une zone de texte calculée dans la section Détail.
_ Pour afficher la feuille des propriétés, assurez-vous que la zone de texte est sélectionnée, puis cliquez sur Propriétés dans la barre d'outils.
_ Définissez les propriétés suivantes :
Propriété Paramétrage
Nom (Name) CpteEnregistrement
SourceContrôle (ControlSource) =1
Cumul (RunningSum) Par groupe
Visible Non
_ Ajoutez une zone de texte calculée au pied de groupe. _ Pour afficher la feuille des propriétés, assurez-vous que la zone de texte est sélectionnée, puis cliquez sur Propriétés dans la barre d'outils. _ Définissez la propriété SourceContrôle ( ControlSource) sur le nom du contrôle dans la section Détail qui cumule les enregistrements. Par exemple, =[Compteur].


Comment masquer (ou réduire / ajuster la hauteur d') une section en fonction des données ?
auteur : Lucifer
Il suffit de jouer sur les propriétés autoréductible du contrôle et de la section. Ceci est valable également pour les en-têtes et pieds de section.


Dans un état Access, on trouve une boite de dialogue "Trier / Regrouper", cette fonction est-elle programmable ?
auteurs : mouuaahh, Drosera
L'équivalent de la boite de dialogue Trier/Regrouper doit se trouver dans la méthode CreateGroupLevel de l'objet Application, mais celle-ci n'est disponible que pour un état en mode création. Elle est notamment utile pour créer un assistant de création d'état.

CreateGroupLevel doit être utilisé en mode création, mais si le niveau de regroupement est déjà créé, on peut alors utiliser la propriété GroupLevel de l'état.
Cette propriété est utilisable dans tous les modes et s'accompagne d'autres propriétés utiles comme SortOrder, GroupOn, GroupInterval, KeepTogether et ControlSource.

Sur l'événement Open de l'état, vous pouvez changer ses propriétés selon vos besoins.
Exemple :

Me.GroupLevel(2).ControlSource = "LeChampATrier"
Me.GroupLevel(2).SortOrder = False

Comment empêcher la perte des marges d'un état ?
auteur : loufab
En effet, il arrive fréquemment, lorsque l'on crée des états, d'être obligé de modifier la mise en page (marges ou orientation) pour des questions de place ou de positionnement (impression d'étiquettes par exemple)...
Et, un beau jour, Access décide de remettre les paramètres par défaut.

Un moyen d'éviter ce problème (depuis Access 2000):

Allez dans le menu Outils/Options
Dans l'onglet Général, décochez la case Suivi informations correction automatique.


Comment imprimer un état situé sur une base distante ?
auteur : Cafeine
En utilisant l'automation Access.
les arguments de la fonctions sont :
. chemin de la base distante
. nom de l'état
. page de départ
. page de fin

Function PrintRemoteReport(ByVal strMDB As String, _
                           ByVal strReport As String, _
                           Optional ByVal iStart As Integer = 1, _
                           Optional ByVal iEnd As Integer = 9999) As Boolean
Dim objAccess As Access.Application
Dim lngRet As Long

    ' gestion d'erreurs
    On Error GoTo PrintRemoteReport_Err

    If Len(Dir(strMDB)) > 0 Then
        ' creation de l'objet Access
        Set objAccess = New Access.Application
        With objAccess
            'ouverture de la base
            .OpenCurrentDatabase strMDB
            'les commandes sont les memes que pour la base en cours
            ' hormis le "objAccess."
            ' ouverture de l'état
            .DoCmd.OpenReport strReport, acViewNormal
            ' impression des pages
            .DoCmd.PrintOut acPages, iStart, iEnd, acHigh
            ' fermeture de l'état sans sauvegarde
            .DoCmd.Close acReport, strReport, acSaveNo
        End With
    End If

PrintRemoteReport_Exit:
    ' libération des objets
    On Error Resume Next
    objAccess.Quit
    Set objAccess = Nothing
    Exit Function

PrintRemoteReport_Err:
    PrintRemoteReport = False
    Select Case Err.Number
        Case 7866:
            'mdb ouverte en mode exclusif
            MsgBox "La base demandée " & vbCrLf & strMDB & _
                vbCrLf & " est actuellement ouverte en mode exclusif.  " & vbCrLf _
                & vbCrLf & "Merci de la réouvrir en accès partagé.", _
                vbExclamation + vbOKOnly, "Impossible d'ouvrir la base"
        Case 2103:
            'l'état n'existe pas
            MsgBox "L'état '" & strReport & _
                        "' n'existe pas dans la base " _
                        & vbCrLf & strMDB, _
                        vbExclamation + vbOKOnly, "Etat non trouvé"
        Case 7952:
            'l"utilisateur a fermé le fichier mdb
           PrintRemoteReport = True
        Case Else:
            MsgBox "Error#: " & Err.Number & vbCrLf & Err.Description, _
                    vbCritical + vbOKOnly, "Runtime error"
    End Select
    Resume PrintRemoteReport_Exit
End Function
Exemples d'utilisation :

PrintRemoteReport "d:\temp\db.mdb", "MonEtat", 1, 10

Comment choisir le mode d'affichage de mon état lorsque je l'appelle depuis un formulaire ?
auteur : Papy Turbo

DocmdOpenReport, ReportName, acViewPreview
DoCmd.RunCommand acCmdPreviewOnePage
Le code ci-dessus affichera les états en mode paysage (à l'italienne).

Si vous voulez les afficher sur 2 pages les états en mode portrait (à la française) remplacez la seconde ligne par :

DoCmd.RunCommand acCmdPreviewTwoPages
À toi d'explorer les autres options de RunCommand acCmdPreview afin de découvrir d'autres possibilités qu'offre Access.


Comment ne pas perdre la mise en page d'un état ?
auteur : =JBO=
Il faut définir une mise en page spécifique pour un état via le menu [Fichier | Mise en page...] sans oublier,
bien sûr, d'enregistrer l'état après la mise en page. Ainsi cette mise en page sera conservée et appliquée, quel que soit le poste utilisateur.

Il éxiste un défaut majeur d'Access 2000 qui perd les informations de mise en page.

Pour y remédier il faut:
>> mettre à jour Access/Office avec le package SR-1a (et au passage installer le SP3).
http://office.microsoft.com/fr-fr/of...226001036.aspx
>> à défaut, dans la boîte de dialogue des Options (obtenues via [Outils[Options...]), sélectionner l'onglet [Général] et désactiver les commandes de la section
[Correction automatique de nom..].
http://support.microsoft.com/default...b;en-us;240826
>> des utilisateurs indiquent que les infos de mise en page sont perdues si une imprimante spécifique est désignée et qu'elle n'est pas référencée sur le poste client.
Donc préférer l'imprimante par défaut.


Comment créer un graphique paramétrable depuis un formulaire vers un état ?
auteur : Cafeine
Il suffit depuis votre formulaire d'attribuer le SQL à une requête et d'attribuer cette requête comme source de données à l'état
ainsi ne reste plus qu'à changer le SQL à la volée et l'état s'en trouvera automatiquement modifié.

Pour exécuter ce code il faut activer la référence : Microsoft DAO 3.x Object Library
CurrentDb.QueryDefs("MaRequeteGraph").SQL = strSQL
lien : fr Définition et manipulation de données avec DAO par Tofalu

Comment afficher un état en plein écran avec un zoom ajusté ?
auteurs : OtObOx, FreeAccess
Ces codes permettent d'ouvrir un état avec le zoom ajusté à la taille de l'écran au lieu du zoom à 100% par défaut.

Code OtObOx :


dans un module, mettre le code de Tofalu:
Public Declare Sub keybd Lib "user32" Alias "keybd_event" _
  (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long) 
 
 
Public Sub appui_touche(T as long) 
'appuie sur la touche 
keybd T, 0, 0, 0 
'relache la touche 
keybd T, 0, 2, 0 
End Sub
Ensuite dans le module de l'Etat mettre sur l'évènement "sur ouverture" :
Private Sub Report_Open(Cancel As Integer)
'Agrandi la fenetre au maximum
DoCmd.Maximize
'Ajuste l'affichage de la page à la taille de l'écran
appui_touche (90)
End Sub


Code de FreeAccess :

à partir d'un formulaire, mettre le code suivant sur l'évènement "sur click" d'un bouton" :
Private Sub Commande0_Click()
'Ouvrir Etat en mode Ajusté
DoCmd.OpenReport "E_ESSAI", acViewPreview
DoCmd.Maximize
DoCmd.RunCommand acCmdFitToWindow
End Sub
l'état doit être "actif" AVANT que les commandes Maximize et acCmdFitToWindow ne soient exécutées.

lien : src Simuler l'appui de n'importe quelle touche du clavier (Exemple avec CAPSLOCK) par Christophe WARIN
lien : faq Comment afficher un état en plein écran et avec un zoom personnalisé ?

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com