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 :

Comprendre l'utilisation de VB dans un form Access.


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut Comprendre l'utilisation de VB dans un form Access.
    Bonsoir,

    J’ai besoin d’aide pour comprendre le fonctionnement sous access.
    J’ai un formulaire avec 3 champs A, B, C.

    Je veux faire C=A+B

    Sous visualB je cré mon code

    Sub Addition()
    C=A + B
    End sub

    Ou dois je placer le module pour que cette operation soit execute quand A ou B change de valeur.
    J’ai essayé un peu partout et cela ne marche pas.
    Quelqu’un pourrit-il m’aider
    Ps
    Je ne connais pas grand chose en VB et est-ce que le code ci dessus fonctionnerait ?

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour....
    J’ai besoin d’aide pour comprendre le fonctionnement sous access
    Commence peut-être déjà par lire cet excellent tuto:
    http://mhubiche.developpez.com/Access/cours/bases/

    Ensuite n'hésite pas à consulter les anciens posts, grâce à la fonction "recherche"...par exemple:
    http://www.developpez.net/forums/sho...t=champ+calcul

    Bonne lecture....et bonne continuation.

  3. #3
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Bonsoir,

    Il faut que tu utilises les évènements after update (après MAJ) de tes champs A et B pour exécuter une fonction d'addition à la quelle tu passes les valeurs de A et de B.

    Il y a surement plus simple mais je vais dans le sens de ta question et ça peut t'apprendre à construire une fonction.

    Au fait, tes champs sont dans une table?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Access réagit aux évènement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Addition()
    C=A + B
    End sub
    Ce code n'a aucune chance d'être exécuté.

    Si tu veux que le code s'exécute, il faudrait écrire ceci pour une procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Sub cmdMonBouton_Click()
    Dim A, B, C as long
     
    C =A + B
    End Sub
    Ce morceau de code va se produire lors d'un évènement qui est un click sur un bouton qui porte le nom cmdMonBouton
    Ensuite, il faut déclarer les variables. A, B et C sont des variables.
    Comme on va faire une simple addition, j'en déduis que ce sont trois nombres.

    Ensuite, je peux exécuter mon action C = A + B

    Et je termine la procédure.

    si tu vas en mode création d'un formulaire, tu demande l'affichage des propriétés, tu verras le nombre d'évènements qui existent pour un formulaire.

    Si tu place un contrôle sur ce formulaire, tu verras que ces évènements changent et s'applique cette fois non plus au formulaire, mais au contrôle.

  5. #5
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    Citation Envoyé par nomade333
    Bonsoir,

    J’ai besoin d’aide pour comprendre le fonctionnement sous access.
    J’ai un formulaire avec 3 champs A, B, C.

    Je veux faire C=A+B
    A mon humble avis, on tu peux faire encore plus simple pour avoir A+B dans le troisième champs de ton formulaire; il suffit d'attribuer à la propriété Source du champ C ceci

    Quand au VBA tu as déjà des suggestions

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Merci à tous pour votre aide.
    Lorsque j'ai cré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub cmdMonBouton_Click()
    Dim actModule, actmshh, actmotposemodule, actposemodule as long
    actModule= actmshh – actmotposemodule - actposemodule
    End Sub
    et que j’exécute cela ne fonctionne pas.

    Si je retire "Dim actModule, actmshh, actmotposemodule, actposemodule as long", cela fonctionne, mais je suis obligé de cliquer sur chaque enregistrement pour mettre à jour "actmodule".
    Tous mes champs sont issu d’une table et sont numériques.

    Si dans le champs actmodule "source du contrôle" j’écris = actmshh – actmotposemodule – actposemodule (actmodule deviens "indépendant"), cela fonctionne mais mon champs "actmodule" dans la table n’est pas mis a jour.
    J’aurai voulu lorsque l’un de mes champs "actmshh" ou "actmotposemodule" ou "actposemodule" changent de valeurs "actmodule" change sur tous les enregistrements.
    Cordialement

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    C'es de ma faute, c'est pas long, mais double.

    Il est évident que c'est pour chaque enregistrement qu'il faut effectuer l'opération.
    Dans le premier post, il n'était pas précisé que c'était pour une action globale.

    Si c'est pour tous les enregistrements, il est préférable soit de passer par le DAO, soit d'utiliser une requête mise à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    actModule: actmshh – actmotposemodule - actposemodule

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonsoir et merci,
    Qu'est ce que le DAO?
    Cordialement

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Le DAO, c'est Data Access Object
    Tu trouvera un tuto sur le DAO, il est très complet.

    DAO

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour et merci
    J'ai réussi en créant comme tu le dis une requête MàJ.
    Merci encore pour votre précieuse aide.
    Heureusement pour les gens comme moi, que des gens comme vous existent.
    Cordialement.
    A+

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

Discussions similaires

  1. Problème #Name? dans un form Access
    Par Patrick p dans le forum Access
    Réponses: 1
    Dernier message: 23/03/2009, 22h37
  2. Utiliser des "SI" dans une requête access ?
    Par shaenwe dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/03/2007, 13h25
  3. Utilisation critère vb dans un état Access
    Par smilingdreamer dans le forum IHM
    Réponses: 7
    Dernier message: 19/07/2006, 15h54
  4. Réponses: 1
    Dernier message: 19/04/2006, 17h32
  5. [VBA]xl*-Utiliser F1...F12 dans un form
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 40
    Dernier message: 27/01/2006, 12h34

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