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 ACCES : Zone étiquette dont les données proviennent d'une table [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut ETAT ACCES : Zone étiquette dont les données proviennent d'une table
    Bonjour,
    Rien que pour le titre j'ai eue du mal à le formuler ! J'ai réussi la 1er étape de mon etat qui visualise les lignes de textes en fonction des variables issues de la requête source.
    Maintenant je dois résoudre un autre problème : dans un des "chapitres" de mon etat, j'ai une partie de texte 'fixe' et ensuite un zone texte devant contenir la valeur issue d'une table pour un Code bien précis.
    je m'explique :
    'Les frais kilométriques....... sont de " 1,20 € " H.T du Km "
    En vert: la valeur du champ [PUHT_prest] dont le [CodePrest] est égal à "KMFORF" de la table "Prestation"
    En effet cette table me permet de stocker les montants des différentes prestations, pour justement les affichés dans les ETATS ou je dois les mentionner. Ainsi si je modifie un montant à une date donnée, les montants seront exacte le jour de l'édition de l'etat.
    Je pense que la méthode est déclarer une série de variables à l'ouverture de l'état, pour les stocker en mémoires, ensuite au sein de l'etat de les imprimer (ou visualiser) à une position precise sur la page.
    Estce la bonne voie ?
    Pourquoi faire simple, quand on peut faire compliqué ???

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Je pense que tu peux utiliser uniquement la zone de texte.

    Dans la propriété "Source contrôle" , tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Les frais kilométriques....... sont de " & [KMFORF] & " H.T du Km"
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci Domi2,
    je ne pense pas que cela puisse marcher, car ici tu désignes un champ, mais KMFORF est le nom de la valeur stockée dans le champ 'CodePrest' de la table PRESTATION
    Par contre en effet sur controlesource, je peux peut-être executer une petite requette qui retournera la valeur souhaitée, je vais exploiter cette piste, je te tiens au courant
    Merci
    Pourquoi faire simple, quand on peut faire compliqué ???

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut Requette sur ouverture ETAT?
    Comment sur l'ouverture de mon ETAT récupérer la valeur qui m'intéresse, ici la valeur du champ [KMFORF] de la table PRESTATION. Bien-sur cette table n'est pas la source de cet ETAT, car PRESTATION est une table de constante qui stocke la base de facturation des prestations de mon appli. Elle ne peut-être lié à la source de mon ETAT.

    J'ai pensé à lancer une requête mais j'obtiens un message d'erreur avec cette instruction...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "Select Prestation.CodePrest, Prestation.PUHT_prest FROM Prestation WHERE (((Prestation.CodePrest)='KMFORF'))"
    Ensuite comment l'insérer dans ma ligne décrite plus haut ?
    Merci pour votre aide.
    Pourquoi faire simple, quand on peut faire compliqué ???

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ferais comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Dim filtre As String
    Dim MaVar As Variant
    filtre = "CodePrest= 'KMFORF'"
    MaVar = Nz(DLookup("PUHT", "Prestation", filtre))
     
    'Et pour la légende de ton étiquette 
    Etiquette.Caption ="Les frais kilométriques..sont de " & MaVar & " H.T du Km"
     
    End Sub
    J'ai mis le résultat dans une étiquette mais tu peux exploiter le résultat de la variable n'importe où.
    Dernière modification par Invité ; 21/04/2009 à 08h00.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci GAYOT pour ton aide, mais le texte est dans une zone 'texte' de mon etat, car le libéllé est renseigné suite à une instruction VBA (sur formatage)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer)
        Me.Var10 = "* Le Kilométrage supérieur aux 40 Kilomètres prévus sera facturé à " & MaVar & "H.T. du kilomètre par véhicule"
    ....
    Mais l'insertion de la variable 'MaVar' reste vide dans la chaine que je veux visualiser
    Par contre si je crée une etiquette '1,2' apparait bien sur ma page (Mais cela n'est pas pratique pour une question de formatage par apport aux autres lignes de mon état)
    J'ai fait un test avec une msgbox,
    Elle me retourne bien la valeur 1,2 mais est-il possible de la formater en format monétaire ? soit --> 1,20 €
    Merci.
    Pourquoi faire simple, quand on peut faire compliqué ???

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    MaVar = Format(Nz(DLookup("PUHT", "Prestations", filtre)), "#,##0.00 €")

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci Gayot de te préoccuper de mon petit problème, mais j'en suis toujours au même point : impossible d'afficher le contenu de la variable 'MaVar' dans une zone texte de mon état....
    J' ai fait un essai avec un état ou j'ai retiré tous les contrôles et procedures VBA, pour ne laisser que les lignes qui traitent la manipulation de cette variable.

    Soit sur ouverture de l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Report_Open(Cancel As Integer)
    'Sur ouverture de l'Etat
    'Récupération des variables dans table PRESTATION
    Dim filtre As String
    Dim MaVar As Variant
    Dim PKMHT As Variant
    filtre = "CodePrest= 'KMFORF'"
    MaVar = Format(Nz(DLookup("PUHT_prest", "Prestation", filtre)), "#,##0.00 €")
    MsgBox MaVar
    'Me.PKMHT = MaVar (j'ai désactivé cette ligne car j'obtiens un msg d'erreur, VBA ne veut pas affecter le contenu de MaVar à ma zone texte PKMHT)
     
    End Sub
    et sur Formatage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer)
       
         ' Section Dépassement de forfait
         Me.Var10 = "* Le Kilométrage supérieur aux 40 Kilomètres prévus sera facturé à " & MaVar & "H.T. du kilomètre par véhicule"
         Me.Var10 = "* Le Kilométrage supérieur aux 40 Kilomètres prévus sera facturé à    H.T. du kilomètre par véhicule"
         
    End Sub
    Quand je veux visualiser mon etat, il affiche le contenu de la 2ème ligne "* Le Kilométrage supérieur aux 40 Kilomètres prévus sera facturé à H.T. du kilomètre par véhicule", mais pas la 1ère ligne avec la conténisation de la variable avec le libellé de texte.

    Sur ce coup je sèche....

    Pourquoi faire simple, quand on peut faire compliqué ???

  9. #9
    Invité
    Invité(e)
    Par défaut
    Attention tu as des erreurs.

    Si PKMHT est le nom de ta TextBox tu n'as pas à la mettre en variable.

    Et pour la ligne que tu as désactivé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.PKMHT.Value = "Les frais kilométriques..sont de " & MaVar & " H.T du Km"
    Essaie comme cela en mettant tout le code sur l'évènement "Sur chargement"

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Je suis désolé, je me suis dès que j'ai lu ton post de me mettre en application, mais la variable n'est toujours pas visualisée!!!
    C'est incompréhensible. Je n'arrive toujours pas à visualiser le "1,20€" dans mon texte.
    Pourquoi faire simple, quand on peut faire compliqué ???

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Tu as mis tout ton code sur ouverture de ton état comme te la proposé GAYOT ?

    Donne nous ton code complet...

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Sur Access 2007 il faut mettre le code sur l'évènement sur Chargement "OnLoad".
    Sur les versions précédentes L'évènement OnLoad n'existant pas sur les Etats, il faut donc mettre les évènements non pas sur l'ouverture mais sur le formatage.

    Ci joint petit exemple fait sur AccessXp.
    Dernière modification par Invité ; 23/04/2009 à 07h43.

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci pour ton aide Gayot !
    Ton petit exemple valait mieux qu'un long discours.... Et après analyse je me suis rendu compte d'où venait le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim filtre As String
    Dim MaVar As Variant
    Dim PKMHT As Variant
    filtre = "CodePrest= 'KMFORF'"
    MaVar = Format(Nz(DLookup("PUHT_prest", "Prestation", filtre)), "#,##0.00 €")
    Ces instructions étaient sur l'événement "Sur ouverture" et non sur "Formatage"
    J'ai replacé les lignes au bon endroit et en effet ça marche, je visualise exactement l'information sur ma page et au bon endroit
    Encore merci pour ton aide.
    Pourquoi faire simple, quand on peut faire compliqué ???

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/09/2008, 11h07
  2. Enlever les données identiques dans une table
    Par DubeiserTM dans le forum Langage SQL
    Réponses: 15
    Dernier message: 31/01/2007, 21h14
  3. Enlever les données identiques dans une table
    Par DubeiserTM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/01/2007, 18h27
  4. Réponses: 12
    Dernier message: 05/10/2006, 15h00
  5. Réponses: 2
    Dernier message: 16/05/2006, 10h52

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