Procedure vb pour access

Résolu
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010
-
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010
-
Bonjour a tous,
j'ai fait une base des produits commandes dans plusieur pays.
elle fonctionne bien mais j'ai un soucis,
 je n'arrive pas a faire une procedure conditionnelle recherchant les champs d'une requete pour mettre la valeur dans une table suivant la saisie via un formulaire :
j'ai un formulairede saisie d'un prix avec des boutons radio selectionnant la devise.
le resultat s'inscrit dans un tableau avec le resultat des radio en [1][2]ou (3].
les cellules suivantes calculent les conversion pour ramener tous les prix dans toutes les devises.
j'aurais besoin que ces valeurs s'inscrivent en auto dans une trtoxieme table avec une unique devise (convertie par le premier tableau).
Pourriez vous me donner une piste pour resoudre mon probleme.
Merci pour toutes vos propositions.

30 réponses

Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

ok, je crois avoir pigé. Une solution serait de creer une table "Devise" avec deux collonnes :
- Une colonne "Nom" de la devise qui te sert d'idendificateur (ou clé). (Dollards, euros, etc...)
- Une colonne "Valeur" qui contient le cours de la monnaie pour effectuer la conversion.

Du coup tu peux utiliser une liste de choix (plutot que des boutons radios) qui contient tes devises (tu peux faire une liste de choix un peu amélioré qui te propose le nom des devises et lorsque tu en selectionne une, affiche la valeur).
Et ensuite tu crée une requête du genre :
NouvelleValeur: AncienneValeur * [Formulaires]![NomDuFormulaire]![ValeurMonnaie]

Attention ta requête ne pourra être affiché que lorsque ton formulaire sera activé
J'espère t'avoir un peu aidé
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Houlala c'est pas trés clair !!Peux tu préciser ?
Ta troisième table comment v-t-elle choisir la devise à sauvegarder ?
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

Bonjour [auteurdetail.aspx?ID=937892 daddycool76], desolé pour la clarté. En fait j'ai resolu a moitié le probleme avec seulement 2 choix de devise, je m'explique sur le blem.
j'ai un formulaire pour saisir des produits sur 3 tables : produit prix, furnisseur et devise.
j'ai besoin de cocher une devise et que les prix soient converties directement par exemple en franc dans la table produit pour avoir en visu directement le meilleur fournisseur. je sais pas si c'est clair.
j'ai contourné le blem en faisant une requete IF mais je n'arrive pas a trouver la bonne syntaxe pour les conditions imbriquée dans : IIf([Genre]=1,[Tarif]*5,[Tarif]*6.55957) AS PrixColisEnFrancs.
Aurais tu une idée la dessus car je n'ai pas reussi.
merci entout cas de t'etre penché sur mon sujet.
guy
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

oui, c'est une bonne solution...mais j'aurais aimé gardé ma config tel quel.Connaitrais tu la syntax vb pour faire un "si, sinon si" imbiqué pour ma cellule. j'en ai essayé plusieurs genre excel et j'ai pas reussi.
connaitrais tu le code ?
merci encore pour ton aide.
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

Je vais opter pour ta methode des que possible.c'est effectivement la plus logique.
Je suis trop bete pour le reste, je mettais des coches ou il fallait pas.
Merci encore de ton soutien.
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

La syntaxe en VB ou VBA est la suivante :

if mavariable = 1 then
Code pour action1
Elseif mavariable = 2 then
code pour Action2
Elseif mavariable = 3 then
code pour Action3
....
Else (c'est optionnel)
Code
end if

C'est vrai que tu peux faire également un petit bout de code en VBA c'est plus facile qu'une requête SQL.
Content d'avoir pu un peu t'aider. @ +
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

J'aimerai bien faire avec VB mais je debute et je sais pas declarer cellules en tant que variable. Faut-il declarer le tableau, la base ? faut il declarer une bibliotheque a part DAO ?
Veux-tu bien me renseigner?
Merci encore pour ton aide
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Oui je suis pas trop occupé en ce moment pas de prob ;)
Alors il vaut mieux utilisé VBA (c'est l'interface qui permet de faire des macros) du coup pas besoin de connexion ADO.

On peut faire tout simple avec tes boutons radios : 
Dans ton formulaire en mode modification fais:
- Clic droit sur le premier bouton radio, puis clic sur proriétées.
- Dans la boite de dialogue séléctionne "évenement"


- Dans l'évenement "sur clic" clic sur le petit bouton "..." et selectionne "generateur de code"


tu devrais voir apparaitre la fenêtre d'édition VBA avec toutes tes procédures codés en VB du genre
Private Sub Option6_Click()
Ton code



End Sub




A la place de ton code tu peux mettre quelquechose dans le genre :
[Text1] = [Text2]*6.56

Avec
 - Text1 : Nom de la zone de texte ou tu veux afficher le résultats de la conversion
 - Text2 : Nom de la zone de texte ou est affiché la valeur de ton produit
- 6.56 : Valeur de la convertion monétaire.

Tu repetes ces opérations pour chacun de tes boutons radios et voilou !

PS :  Je te conseille quand même la solution que je t'avais indiqué au début. Elle est à mon avis bien plus souple.  
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

Super sympa, je vais essayer les deux soluces.
Tu m'as vraiment bien aidé meme si c'est du b.a.ba
Avec tous mes remerciements.
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

ça ne fonctionne pas comme j'aurais aimé. je souhaitais que ma cellule calculée dans mon formulaire mette a jour le tuple "resultat" dans la meme table avec un refresh dans le formulaire.
Pourriez vous m'aider car je suis vraiment pas doué.
Merci du moindre renseignement.
guy
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

C'est bizarre que le résultat du calcul ne se mette pas à jour automatiquement...

Si tu veux tu peux m'envoyer ta base access...
damien-andre@caramail.com
Je vais voir ce que je peux faire...

Petite remarque sur Acces toutefois :
En ce qui concerne les tables il faut (à mon avis) que les informations de tes colonnes soient  indépendantes.
Prenons par exemple pour une table commande qui contient les champs :
- Nom du produit
- Prix unitaire du produit
- Quantité commandé

Si tu veux connaitre le prix de la commande, le mieux est de créé une requête ou tu ajoutes :
- Nom du produit
- Prix unitaire du produit
- Quantité commandé
- Prix : [Prix unitaire] * [Quantité commandé]

En conclusion n'essayes pas d'inserer le prix calculé dans ta table mais dans une requête. C'est trés largement moins compliqué !!!!
Sinon il faut creer une "requête ajout" et c'est pas évident.

@ + 
 
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

oui mais ce n'est pas vraiment mon desir et ce serait bien plus pratique avec le formulaire.

je t'envoie un version epurée avec le formulaire "refresh".


j'espere que ce sera pas trop embettant.


merci beaucoup de ton aide en tout cas.


guy
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

maintenant, effectivement pourquoi pas>>> dans le formulaire inserrer la requete du resultat avec les calculs et raffraichir directement a la saisie des valeurs du formulaire mais cela ne fonctionne pas comme je l'ai fait.
peut etre que c'est possible et plus facile.
je peste de pas y arriver.
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

je ne l'ai pas reçu, zip peut être ta base... L'antivirus de caramail peut supprimer les formats de fichier non reconnu.

J'espère que je pourrais l'ouvrir (problème de version), je te tiens au courant, @ +
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

je te l'envoie en zip. c'est une version access 2003.
j'espere que tu l'as reçu





merci
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

c'est genial ça fonctionne a merveille,



je vais pouvoir avancer grace a toi,





je te remercie infiniment pour ce coup de pouce.
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Tant mieux !!
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

bonjoir, je suis pas encoore satisfait de la manipulation.
c'est super pour un formuaire et une sous requete avec le calcul,
j'aurais aimé faiire des formulaires imbriqués couplés avec des requetes imbriquées (valeurs intermedaires pour verifier le bon deroulement) calculées insérées par chaque  formulaire.
en fait j'aurais aimé 4 niveaux de chaque.
dois-je continuer formulaire et requetes imbriqués (pour le moment ça fonctionne pas d'ou ma question) ou dois-je pratiquer autrement ?
pouvez vous me renseigner svp.
Merci de votre participation.
Messages postés
56
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007

Bonjour pilaf, peux tu donner un petit exemple ?
Je ne comprend pas bien ce que tu souhaites obtenir...
Messages postés
24
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
18 mars 2010

Bonjour DaddyCool, En fait j'ai un formulaire de saisie sur plusieures tables liées (produit, fournisseur..). dans ce formulaire j'y colle une requete qui ramene le prix du produit a la meme devise>>> voici le premier sous-formulaire. Par dessus je veux le premier formulaire pere-fille "sous produit" avec la saisie des produits par Item fabriqué avec a l'interieur une requete qui calcule la somme des produits utilisés et me fait le prix total de ce "sous produit". et ainsi de suite jusqu'a 4 niveaux. pour arriver aux formulaire final qui permet de saisir un quelconque produit, sous produit (1.2 et/ou 3) pour calculer le prix total. je me suis dit que calculer dans chaque formulaire les prix de chacun eviterait les erreurs... et il y a toujours un menu qui fonctionne pas dans les formulaires imbiqué.
je me demande si je n'utilise pas une mauvaise methode de construction ??
je commence par un formulaire, peut etre faudrait commencer par que des requete et bosser sur les requetes....je sais plus.
merci de ton intervention.