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 :

Si un état n'existe pas, en renommer un autre


Sujet :

IHM

  1. #1
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut Si un état n'existe pas, en renommer un autre
    Bonjour à tous,

    Afin de générer des PDF dont le nom par défaut est le nom de l'enregistrement en cours, j'utilise la fonction DoCmd.Rename avant et après l'impression (le 1er renomme avec le nom du site, le second redonne le nom initial à l'état).

    Sauf que j'ai noté que s'il y avait une erreur ou une annulation au cours de l'impression, la procédure s'arrête et ... Ben mon état ne reprend pas son nom initial.

    Je voudrais écrire une procédure de sauvetage du genre:
    Si Report("fiche_complete") n'existe pas alors
    teste les noms des états.
    si le nom <> "état1" et <> "état2" et <> "état3" et <> "état4" alors
    renomme cet état avec "fiche_complete" (dans ce cas, il s'agit de l'état qui n'a pas repris son nom initial)

    Le problème est que je n'arrive pas à tester les noms des états.
    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
    Sub test_etats()
    Dim etat_testé As Report
    Dim tous_les_etats As Reports
     
    For Each etat_testé In tous_les_etats
        If etat_testé.Name = "fiche_complete" Then
            Exit Sub
        Else
            If etat_testé.Name <> "etat1" And etat_testé.Name <> "etat2" And etat_testé.Name <> "etat3" And etat_testé.Name <> "etat4" Then
                DoCmd.Rename nom_ini_etat, acReport, etat_testé.Name
            End If
        End If
    Next
     
    End Sub
    J'ai le message d'erreur "objet requis" pour la ligne For Each etat_testé In tous_les_etats car etat_testé = nothing

    Pourquoi ne parcourt-il pas tous les états?

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Que sont etat1 ... etat4 ?

    Ton erreur ne serait-elle pas produite à cause de ton And donc ne faudrait-il pas utiliser des Or

    Gabout
    Gabout

  3. #3
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut
    Que sont etat1 ... etat4 ?
    Ce sont les autres états (les sous-états composant "fiche_complete".

    Ton erreur ne serait-elle pas produite à cause de ton And donc ne faudrait-il pas utiliser des Or
    Je cherche le seul état dont le nom est différent de "etat"+n. donc il faut que le nom soit différent de "etat1" ET différent de "etat2" ET différent de "etat3" ET différent de "etat4".
    De plus, ça m'étonnerai: l'exécution du code n'atteint même pas cette ligne là.
    J'ai le message d'erreur "objet requis" pour la ligne For Each etat_testé In tous_les_etats car etat_testé = nothing
    Visiblement, il ne trouve pas les états ou les noms. Manquerait-il quelques chose pour déclarer que les états sont ceux de la base en cours?

  4. #4
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut
    J'ai essayé avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim etat_testé As Report
    Dim tous_les_etats As Reports
    Dim dbsA As Database
    Set dbsA = CurrentDb
     
    For Each etat_testé In dbsA.Reports
    ...
    Mais son exécution bloque sur .reports avec le message
    erreur de compilation: membre de méthode ou de données introuvable
    Petite précision: j'ai posé tout ce code dans un module pour pouvoir l'utiliser depuis plusieurs formulaires. C'est mal pour gérer les états?

  5. #5
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut
    Un coup de main? Une suggestion? Une remarque?
    Je n'ai plus que cette procédure "de sauvetage" (qui sert en cas de bug sur un autre code) à finir avant de rendre l'appli...

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Je ne vois pas le rapport entre
    Citation Envoyé par Miss Ti Voir le message
    Afin de générer des PDF dont le nom par défaut est le nom de l'enregistrement en cours, j'utilise la fonction DoCmd.Rename avant et après l'impression (le 1er renomme avec le nom du site, le second redonne le nom initial à l'état).
    et
    Je voudrais écrire une procédure de sauvetage du genre:
    Si Report("fiche_complete") n'existe pas alors
    teste les noms des états.
    si le nom <> "état1" et <> "état2" et <> "état3" et <> "état4" alors
    renomme cet état avec "fiche_complete" (dans ce cas, il s'agit de l'état qui n'a pas repris son nom initial)

    Le problème est que je n'arrive pas à tester les noms des états.
    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
    Sub test_etats()
    Dim etat_testé As Report
    Dim tous_les_etats As Reports
     
    For Each etat_testé In tous_les_etats
        If etat_testé.Name = "fiche_complete" Then
            Exit Sub
        Else
            If etat_testé.Name <> "etat1" And etat_testé.Name <> "etat2" And etat_testé.Name <> "etat3" And etat_testé.Name <> "etat4" Then
                DoCmd.Rename nom_ini_etat, acReport, etat_testé.Name
            End If
        End If
    Next
     
    End Sub
    J'ai le message d'erreur "objet requis" pour la ligne For Each etat_testé In tous_les_etats car etat_testé = nothing
    Si ta question c'est de nommer le PDF en fonction de l'enregistrement courant : je ne vois pas pourquoi tu renommes l'état...

    Pourquoi ne parcourt-il pas tous les états?
    il faut parcourir le containers Reports.

  7. #7
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut
    Merci pour le lien Lou Pitchoun.
    C'était exactement ce qu'il me fallait.
    Et c'est résolu.

    Pour quand même répondre à ta question "je en vois pas le rapporte entre... et ..." voici la réponse:
    Sauf que j'ai noté que s'il y avait une erreur ou une annulation au cours de l'impression, la procédure s'arrête et ... Ben mon état ne reprend pas son nom initial.
    Je voudrais écrire une procédure de sauvetage du genre:
    Si ta question c'est de nommer le PDF en fonction de l'enregistrement courant : je ne vois pas pourquoi tu renommes l'état...
    Mon but était de pouvoir créer des PDF avec un nom de fichier par défaut correspondant à l'id. du site car l'utilisateur peut lancer la création de plusieurs PDF à la fois pour plusieurs sites. PDFCreator prend le nom de l'état par défaut. Donc comment savoir si le PDF créé "Fiche_complete" concerne BRA1, BRA10 ou VMU4? As-tu vu les tutos sur la manipulation de PDFCreator? C'est vraiment pas simple. Sachant que j'avais 1 journée à dédier à cette base, j'ai fait au plus simple:en renommant l'état avant de lancer l'impression, j'obtiens un PDF dont le nom par défaut est celui de l'identifiant du site en cours. Afin de pouvoir réutiliser cet état à chaque fois, il reprend son nom initial.
    En cas de bug (si l'état n'a pas repris son état initial), j'ai maintenant cette procédure de "secours".

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

Discussions similaires

  1. [PB ODBC] Ce serveur n'existe pas ou son accès est refusé
    Par meufeu dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2015, 18h02
  2. Le package javax.servlet.http. n'existe pas
    Par sophie1909 dans le forum JBuilder
    Réponses: 5
    Dernier message: 25/08/2009, 03h17
  3. Réponses: 4
    Dernier message: 08/09/2005, 22h24
  4. erreur : la table n'existe pas !!!
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/06/2005, 14h17
  5. Le membre de collection requis n'existe pas
    Par mschistozis dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 16h41

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