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 :

[Etat Etiquette] Génération dynamique d'étiquettes [À faire]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut [Etat Etiquette] Génération dynamique d'étiquettes
    Access 2000/Win XP SP1
    Salut,

    Bien j'ai un pti souci.
    J'ai créé un état étiquette 7163 (assistant) fondé sur une requête Q qui est dynamiquement générée par une procédure.
    Lors de la conception, le 1er aperçu est nickel. Dès lors, je le ferme, je réouvre, nickel aussi. (Pour vérifier)
    Là, je balance ma proc qui depuis un SELECT (MySelect)fondé sur les champs dont j'ai besoin pour créé la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDB.CreateQueryDef(Q, MySelect)
    J'ai exécuté le code avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport MyReport, acViewPreview
    Et là aussi nickel.
    Je ferme le Form générateur puis l'état (en aperçu) puis, je recommence avec une autre option de mon Form. Et là, surprise, mes étiquettes apparaissent bien sur l'état mais sur une seule colonne (celle de gauche et sur 2 pages voire plus). Le 7163 permet d'imprimer 14 étiquettes/page et moi, avec 33 enregistrements, je me retrouve avec 5 pages au lieu de 3.
    Le pire, c'est que si j'ouvre l'état (sans passer par ma proc) directement en aperçu, il persite à rester sur une seule colonne.
    C'est quoi le hic

    Merci

  2. #2
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    euh làààà
    ça n'intrigue personne apparement...
    j'aimerais que qq'un essaye et me dise s'il a le même phénomène.
    je récap.
    1/ créer un état étiquette fondée sur une requête définie.
    2/ copier le texte sql dans un string
    3/ faire une proc de création dynamique de la requête sur le même nom que cette dernière
    4/ ouvrir l'état venant d'être créé avec DoCmd.OpenReport, 2
    5/ fermer l'état, relancer la proc et voir le résultat...

    avez-vous la même chose que moi ou je m'y prend comme un

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Je suppose que si tu fais un createQuery, tu est obligé de détruire la requête existante avant de recréer la nouvelle...
    C'est peu être ça le HIC
    As tu essayé de mettre ta requête dans un table qui est elle-même rattachée à ton état ? Au moins ça ne bouge pas...

    Argy

  4. #4
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Salut,

    Tu as vérifié le nombre et les largeurs de colonnes ?
    Dans Fichier, Mise en page, onglet Colonnes ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    salut

    mouais... papy c'est bien ça.
    la solution d'Argy fonctionne super aussi, merci.
    en fait, je sais pas intervenir avec VBA sur le nbre de colonnes et la solution d'Argy est un paliatif à la vérification du nombre de colonnes.
    j'ai l'impression que le fait de killer la requête (docmd.deleteobject) pour la recréer derrière perturbe la structure de la mise en page de l'état.
    est-ce un bugggggg
    bref, j'ai adopté le fill dynamic de la table.
    je veux bien par simple curiosité savoir si on sait paramétrer le nombre de colonne par vba
    après quoi je tagerais Resolu.
    merci

  6. #6
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Déjà, si le problème vient de la suppression de la requête (ton KILL), tu peux essayer de la modifier sans la tuer :
    (code testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub UpdateQuery(NomRequête As String, NouveauSQL As String)
    Dim db As DAO.Database
    Dim Qdef As DAO.QueryDef
        Set db = CurrentDb
        Set Qdef = db.QueryDefs(NomRequête)
        Qdef.SQL = NouveauSQL 
        ' ou tout autre manip telle que (non testée !) :
        'Qdef.SQL = Replace (Qdef.SQL, "ancienne valeur", "nouvelle valeur")
    End Sub
    Tu peux surtout, si c'est un simple paramètre qui change, le modifier dans ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.OpenReport "NomEtat",,,Critere
    ou critère est la clause 'WHERE' que tu veux appliquer dans la requête ! (sans le mot clé 'WHERE').
    C'est généralement la meilleure méthode.

    Je vais chercher ce problème de colonnes, ça m'intrigue aussi. Le 1er qui trouve la bonne propriété de l'objet report a gagné la considération universelle des lecteurs de DVP.Access

  7. #7
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Trouvé. Propriété PrtMip de l'état. Je te laisse regarder l'exemple dans la doc Access, pour voir la structure d'un Type PrtMip et la position du paramètre Nombre de colonnes...
    Relativement casse-bonbon : ça vaudrait le coup, si y en a d'autres que ça intéresse, qu'on se fasse une bonne sub ou fonction qu'on puisse stocker dans une librairie, et qui comporte en clair, tous ces paramètres...
    De même pour clarifier l'usage plutôt obtus des 2 autres propriétés liées à l'imprimante :
    - PrtDevNames : infos sur l'imprimante sélectionnée (driver, imprimante, port et "c'est l'imprimante par défaut ou pas ?")
    et
    - PrtDevMode : choix imprimante, taille(s) papier, nombre copies, orientation, etc.

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ah, effectivement j'ai regardé... C'te Propriété PrtMip.
    c la prise de tête...
    en tout cas, elle ne m'explique pas pourquoi le fait de regénrer ma requête dynamiquement par code bousille mon état; même si je doevents un peu entre les 2 processus.
    Euh je m'y pencherais un peu + tard car je suis pris par le temps avec cette appli. La soluce d'argy me convient.
    Papy je te de t'être creusé la tête...

    a+
    bahCétaitMoi

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

Discussions similaires

  1. [Etat etiquette] Choix taille étiquettes
    Par Daniel-Gérald dans le forum IHM
    Réponses: 3
    Dernier message: 15/09/2007, 17h48
  2. [PDF]Génération dynamique de PDF et stockage
    Par JeJerom dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/01/2006, 15h25
  3. VB - Génération dynamique de controles dans un forme
    Par jeanangel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/12/2005, 21h09
  4. [DOM] Génération dynamique fichier xml
    Par Fabouney dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/10/2005, 09h45
  5. [SQL*Plus] génération dynamique du fichier de spool
    Par lalystar dans le forum Oracle
    Réponses: 3
    Dernier message: 06/12/2004, 10h44

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