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

Modélisation Discussion :

Epine de conception BDD : calculs de valeurs


Sujet :

Modélisation

  1. #1
    YeP
    YeP est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Epine de conception BDD : calculs de valeurs
    Bonjour à tous, et merci pour toute la doc en ligne qui m'a permis de mettre sur pied mon petit projet.

    Je suis en train de construire sous Access2007 une base qui référencent des spécimens, des lignées ainsi que leurs suivis photos avec observations. La base en elle même est construite et je peux dors et déjà basculer toute mes vieilles données Excel dessus. Mes besoins étant minimes (j'ai quand meme pas mal ramé sur des décisions concernant diverses approches avec les photos...), la base est assez épurée.

    Je butes sur un problème de calcul de date. Après plusieurs essais divers et variés, j'ai opté imbécilement pour un code événement sur les zones textes des formulaires. Le code VBA marche au poil et affiche ce qu'il faut au bon endroit... seulement les données ne sont à jour qu'en employant les formulaires "équipés" en ajout ou modification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Timeline_GotFocus()
    'calcul nb jours Timeline avec date1
     If Not IsNull(Fin) Then
                Me![Timeline].Value = DateDiff("d", Me![Debut], Me![Fin])
            Else
                Me![Timeline].Value = DateDiff("d", Me![Debut], Me![Aujourdhui])
    End If
    End Sub
    Je ne sais sur quel solution m'orienter pour que le calcul de date/jours soit "sédentaire" sur une table. Intégré dans le champ lui même?

    Peut on insérer du code en tant que "valeur par défaut" autrement que par l'assistant ? (pour recycler le code ci haut qui m'a donné des sueurs n'ayant jamais fait de VBA auparavant... je ne saurais pas écrire la même chose en SQL ou avec l'assistant "..." )

    Je ne sais pas trop si je dois créer une table gérant tout le système de date (c'est pas trop pour mon utilisation très basique?) de la base, ou bien m'orienter vers le SQL ou encore .... HELP!
    Normalement on fait quoi dans ce cas là ?

    Merci d'avance et bonne continuation !

  2. #2
    YeP
    YeP est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je vous met en primeur ce qui m'a bloque :

    Vous ne pouvez pas mettre de champs calculé dans une table Access.
    La maintenance de ces derniers n'est pas toujours efficace.
    Vous devez donc faire une requête.
    Dans cette requête, prenez tous les champs de la table et faites un champ calculé (ex : Select Champ1 + Champ2 From ...). Utilisez également la fonction vraifaux() si besoin est (afin de ne pas diviser par 0 par exemple).

  3. #3
    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,

    Effectivement, il n'est pas conseillé de stocker des calculs dans des tables (j'ai eu à le faire une fois car je n'avais pas d'autres solutions (?!?) ).
    En effet, tu peux effectuer ces calculs par une requête ou encore les afficher dans un champ indépendant sur le formulaire ou état.

    Donc, soit tu crées une requête qui sera la source de ton formulaire, soit tu crées un champ indépendant avec en source de données la formule de calcul.

  4. #4
    YeP
    YeP est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta confirmation .

    J'ai mis le code en direct sur événements (mise a jour et chargement formulaire). Je m'en sors beaucoup mieux en passant par l'éditeur VBA, le langage est moins "obtus" à comprendre.

    Par contre j'ai effectivement besoin de gérer ce calcul via requete pour un autre formulaire...

    J'ai un formulaire d'édition de suivi de specimen(table suivi) qui se référe à la (table specimen). Comme précedemment je faisais mon calcul avec des champs générés automatiquement par l'assistant, du coup mon code chèrement pondu n'est plus valable.

    Je peux mettre des champs non visibles en mode formulaire de la table externe sans changer mon code, ou bien peut on le changer en indiquant le chemin complet des tables en VBA pour que ce soit "plus propre" ?

    Merci encore!

  5. #5
    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
    J'ai pas trop bien saisi le coup des champs non visibles...
    mais c'est peut être ce qu'il y a de plus simple.
    Consulte le tutoriel de Loufab sur les appels de formulaire

  6. #6
    YeP
    YeP est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci de m'avoir aiguillé, je focalisais sur les tables... je n'avais pensé à une interaction entre formulaires.

    Bonne journée !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/09/2007, 11h25
  2. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 23h20
  3. Problème champs calculés et valeur null
    Par markintell dans le forum Access
    Réponses: 18
    Dernier message: 10/01/2006, 18h14
  4. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  5. [Debutant]calcul de valeurs propres, givens-householder
    Par malbarre dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 18/08/2005, 16h40

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