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

Access Discussion :

Transmission de paramètres entre formulaire et état - nouveau bug ! [AC-2016]


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Transmission de paramètres entre formulaire et état - nouveau bug !
    Bonjour,

    J'ai conçu une base accès qui génère pas mal d'état.
    Cette base a été par la suite relié à un base de données sous sql server
    Tout fonctionnait très bien mais les dysfonctionnements s'accumulent depuis 2 ans.
    De mon côté j'ai maintenant un pc sous Windows 10 avec Access 2016.
    Lorsque je souhaite générer un état sur base de 3 paramètres à récupérer dans des combo, il m'ajoute 2 zéros à la fin d'un des paramètres (l'identifiant de la personne) et donc ca bug ....

    Voici le code d'ouverture de l'état (où le paramètre est toujours correct) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             Critere = "[Mois]=" & Me.CbMois & " AND [An]=" & Me.CbAnnee & " AND [idMemb]= " & Me.CbMemb
            DoCmd.OpenReport stDocName, acPreview, , Critere
    Et voici le code de l'état ou le paramètre est transformer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           Set rs = CurrentDb.OpenRecordset("SELECT TbMembres.idMemb, TbMembres.NRN FROM TbMembres WHERE (((TbMembres.idMemb)=" & Me.idMemb & "));", dbOpenSnapshot)
    Quelqu'un aurait-il une idée de la raison de ce bug subite !!!!!
    Merci

  2. #2
    Membre éprouvé
    Femme Profil pro
    Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Inscrit en
    Août 2017
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 358
    Points : 931
    Points
    931
    Par défaut Bonsoir Cleonat,
    J'aimerais mieux comprendre le contexte.
    Tu parles d'une sélection des valeurs de critère dans des combo; comment cette sélection du formulaire est-elle transmise à l'état ?
    A quel stade observes-tu les zéros ajoutés à l'identifiant du membre ?
    Le code qui "dysfonctionne" se trouve dans quel événement?

    Cordialement,
    Paraffine.
    Les problèmes sont des opportunités en vêtements de travail. Henry H. Kaiser
    Il n'est pas de problème dont une absence de solution ne finisse par venir à bout. Henri Queuille

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Quelle est la source de "il m'ajoute 2 zéros à la fin d'un des paramètres" ?

    Vérifie le format du champ, peut-être que c'est un nombre sans décimale avec un délimiteur décimal positionnel.
    Quelque chose comme 99999V2 soit 5 chiffres et une virgule invisible 2 chiffres avant la fin au lieu d'un entier long par exemple.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Dans mon formulaire il y a 3 listes déroulantes pour choisir le mois, l'année et le membre (à deux éléments : id et nom).
    Lorsque le déclenche le bouton il insère les 3 variables dans les paramètres critères de l'ouverture de l'état. Et là tout est encore normal (ex idMemb = 102). Je précise que l'id est un integer.
    L’événement d'ouverture d'état suit sont court, transmet donc les paramètres à la requête de l'état:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Month([EffPayDate]) AS Mois, Year([EffPayDate]) AS An, TbPay.idMemb, TbPay.Nom, TbPay.Prenom, TbPay.AdrStreet, TbPay.AdrNum,TbPay.AdrPB, TbPay.AdrCP, TbPay.AdrCity, TbPay.IBAN, TbPay.BIC, TbPay.PrCpt, TbPay.EffPayDate, TbPay.RLing
    FROM TbPay
    GROUP BY Month([EffPayDate]), Year([EffPayDate]), TbPay.idMemb, TbPay.Nom, TbPay.Prenom, TbPay.AdrStreet, TbPay.AdrNum, TbPay.AdrPB, TbPay.AdrCP, TbPay.AdrCity, TbPay.IBAN, TbPay.BIC, TbPay.PrCpt, TbPay.EffPayDate, TbPay.RLing;
    Le résultat de la requete est mis dans différents textbox.
    Et là je découvre que l'idMemb est devenu"10200".
    Dans la DB sql le champs idMemb est un "numeric(18, 0)".
    Le plus étrange c'est chez mon collègue (Windows 10 et Acces 2010) le problème ne se pose pas !!!!!

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Parfois les paramètres régionaux font des farces.
    Vérifie ce qui est défini comme séparateur décimal au niveau de Windows. Est-ce la virgule ou le point ?
    Vérifie si ce paramètre est identique sur ton poste et celui de ton collègue.

    Enfin est-ce que ton ID est un Entier (Integer) ou un Entier long (Long Integer) ?
    Aussi vu la nombre de chiffres autorisé, je recommanderai de le traiter comme du texte.
    Je comprends que cela aura des impacts sur ton appli mais cela me semble la solution la plus durable.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre éprouvé
    Femme Profil pro
    Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Inscrit en
    Août 2017
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 358
    Points : 931
    Points
    931
    Par défaut Bonsoir Cleonat,
    Est-ce que tu transmets les critères par Openargs, ou bien utilises-tu les valeurs du formulaire dans la requête source ?
    Est-ce que l'état trouve les données qui correspondent à l'id (102 dans ton exemple) ?
    As-tu essayé d'utiliser une fonction pour faire abstraction de la "couche de présentation" (sujette aux humeurs des paramètres régionaux...); par exemple, d'utiliser Clng(idMember) (dans ton select/ dans les critères), plutôt que idMember ?

    Cordialement,
    Paraffine.
    Les problèmes sont des opportunités en vêtements de travail. Henry H. Kaiser
    Il n'est pas de problème dont une absence de solution ne finisse par venir à bout. Henri Queuille

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Un tout grand merci pour vos réponses.
    Dans la DB sous sql le format de l'idMemb est "numeric(18, 0)" (je n'ai pas créé cette table).

    J'ai réglé mon problème en castant l'id dans la requête liée à l'état et en effet plus de problème !
    CInt([idMemb]) AS idMb,

    Je ne comprend pas bien pourquoi çà arrive alors que çà fonctionnait parfaitement avant mais il est vrai que depuis 1-2 ans et des changements de version de Windows et d'Office, voir de pc pour certains, je suis confrontée à énormément de problèmes de date avec Access . Il s'amuse à les inverser dans tous les sens :-(
    Avec mon collègue de l'informatique on a chercher les paramètres régionaux du server, des pc, de sql server ... Rien n'y fait et quand çà touche des dates de paiement c'est plutôt malvenus !!!
    Il semblerait que la communication entre la base sous sql server et Access sur les différents pc soit très hasardeuse.

    Enfin ce problème-ci est résolu, un tout grand merci !

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Sauf si tu es sur que ton numéro ne dépassera jamais 32367, je recommande de le caster en long plutôt qu'en integer.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    ah oui caster en long !!!
    super idée, merci pour le truc

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/02/2010, 21h12
  2. transmettre des paramètre entre formulaires
    Par ziz2005 dans le forum IHM
    Réponses: 6
    Dernier message: 27/10/2008, 15h55
  3. Réponses: 9
    Dernier message: 10/12/2007, 19h09
  4. Réponses: 2
    Dernier message: 26/06/2007, 12h00
  5. passage de paramètre entre formulaire et état
    Par thufir hawat dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 22h32

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