IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

imprimer une section détail que si elle contient des données


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut imprimer une section détail que si elle contient des données
    bonjour,

    j'ai lu la faq et refait un tour sur le forum mais impossible de retrouver la réponse

    Je souhaite donc n'imprimer la section détail que si elle contient des données, pourriez vous me donner la syntaxe à mettre sur l'évènement impression ou formatage (je ne me rappelle plus non plus) pour le réaliser ?

    Merci de votre aide
    isabelle

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Salut,
    Dans propriétés de ta section détail : "Autoreductible" Oui.
    A +

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    bonjour merci pour ta réponse

    mais ce n'est pas celle que j'attendais,

    c'est une syntaxe plus compliquée que l'on écrit en vba

    isabelle

  4. #4
    Membre actif Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 254
    Points : 256
    Points
    256
    Par défaut
    Hello,

    la commande d'impression est via un formulaire ?

    Si tel est le cas, il suffit juste de compter les enregistrements.

    Sur le bouton d'impression faire une condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Me.RecordsetClone.RecordCount = 0 Then
    msgbox ("Il n'y a aucun enregistrement à imprimer")
    else
      DoCmd.OpenReport lenomdetonreport, acNormal
    End If

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Bonjour

    ca marche c'est parfait,

    Pour un autre formulaire, j'aurais besoin de lui dire que si le recordset est arrivé au dernier enregistrement, il doit rendre inactif un control

    j'image que c'est sensiblement la même syntaxe, mais je ne trouve pas l'écriture correcte

    peux tu m'aider aussi la dessus ?

    merci
    isabelle

  6. #6
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 57
    Points : 70
    Points
    70
    Par défaut
    J'utilise ceci sur l'événement Form_Current :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim rst As Recordset
    Set rst = Me.RecordsetClone
    rst.MoveLast
     
    If Me.CurrentRecord = rst.RecordCount Then
        Me.MonControle.Enabled = False
    Else
        Me.MonControle.Enabled = True
    End If

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    bonsoir,

    merci de ta réponse

    avec le code suivant j'obtiens une erreur incompatibilité de type 13

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim rst As Recordset
    Set rst = Me.RecordsetClone
    rst.MoveLast
     
    If Me.CurrentRecord = rst.RecordCount Then
        Me!B_suivant.Enabled = False
    Else
        Me!B_suivant.Enabled = True
    End If
    il me souligne la ligne Set rst = Me.RecordsetClone

    comme je ne comprends pas bien ton code je n'arrive pas à la résoudre

    isabelle

  8. #8
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 57
    Points : 70
    Points
    70
    Par défaut
    La propriété RecordCount permet de compter les enregistrements d'un recordset.
    Quand il s'agit de la source d'un formulaire, il faut appliquer la méthode MoveLast d'abord (sur une table, ce n'est pas nécessaire).
    Le RecordsetClone renvoie un objet recordset qui est un clone de la source du formulaire, comme son nom l'indique. On peut donc faire le MoveLast sans incidence sur le formulaire affiché.
    Si l'enregistrement en cours est le dernier, la propriété CurrentRecord (n° de l'enregistrement actif) correspondra à RecordCount (nombre d'enregistrements).

    J'ai trouvé ces infos dans l'aide d'Access. Tu peux voir les rubriques Form.RecordsetClone, propriété et Recordset.RecordCount, propriété

    Je ne comprends pas à quoi correspond l'erreur qui se produit chez toi, d'autant qu'il me semble que le résultat que tu recherches est le même que chez moi (un bouton suivant désactivé).

    Est-ce que ces commentaires t'aident ?

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour Lilix,
    Est-ce un Recordset DAO ou ADO ?

  10. #10
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 57
    Points : 70
    Points
    70
    Par défaut
    c'est en DAO

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    re je crois que le problème vient de là, les Activex Data Objects (ADO)contiennent aussi des objets Recordset.
    Il faut vérifier la présence de la référence DAO et préciser à quelle classe appartient le Recordset dans la déclaration de la variable.
    Il faut remplacer la ligne par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rst As DAO.Recordset

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Bonjour

    merci beaucoup de votre aide et vos explications

    c'était bien la précision DAO qui manquait, ca fonctionne parfaitement

    bonne journée
    isabelle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Planifier l'envoi d'un rapport que s'il contient des données.
    Par azur123 dans le forum Launchpad (ex-Infoview)
    Réponses: 0
    Dernier message: 29/10/2014, 11h28
  2. Réponses: 2
    Dernier message: 15/11/2007, 12h15
  3. [CR8.5]Masquer une section détail suivant une variable partagée
    Par ryllin dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/10/2007, 10h00
  4. [CR8] Afficher ou masquer une section détail
    Par vvm54 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/10/2005, 16h38
  5. imprimer une page Web sans qu'elle ne s'affiche
    Par Mehdi Feki dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/07/2005, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo