Procedure vb pour access [Résolu]

cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 16 mars 2007 à 13:10 - Dernière réponse : cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention
- 28 mars 2007 à 23:49
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.
Afficher la suite 

30 réponses

Répondre au sujet
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 18 mars 2007 à 19:27
+3
Utile
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é
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de daddycool76
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 18 mars 2007 à 09:56
0
Utile
Houlala c'est pas trés clair !!Peux tu préciser ?
Ta troisième table comment v-t-elle choisir la devise à sauvegarder ?
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 18 mars 2007 à 16:45
0
Utile
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
Commenter la réponse de cs_pilaf
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 18 mars 2007 à 21:00
0
Utile
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.
Commenter la réponse de cs_pilaf
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 19 mars 2007 à 04:11
0
Utile
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.
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 19 mars 2007 à 07:14
0
Utile
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. @ +
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 19 mars 2007 à 10:47
0
Utile
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
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 19 mars 2007 à 11:44
0
Utile
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.  
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 19 mars 2007 à 13:18
0
Utile
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.
Commenter la réponse de cs_pilaf
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 22 mars 2007 à 12:53
0
Utile
ç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
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 22 mars 2007 à 13:17
0
Utile
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.

@ + 
 
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 22 mars 2007 à 13:38
0
Utile
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
Commenter la réponse de cs_pilaf
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 22 mars 2007 à 13:55
0
Utile
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.
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 22 mars 2007 à 14:32
0
Utile
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, @ +
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 22 mars 2007 à 14:50
0
Utile
je te l'envoie en zip. c'est une version access 2003.
j'espere que tu l'as reçu





merci
Commenter la réponse de cs_pilaf
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 22 mars 2007 à 18:40
0
Utile
c'est genial ça fonctionne a merveille,



je vais pouvoir avancer grace a toi,





je te remercie infiniment pour ce coup de pouce.
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 22 mars 2007 à 18:51
0
Utile
Tant mieux !!
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 27 mars 2007 à 23:54
0
Utile
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.
Commenter la réponse de cs_pilaf
daddycool76 56 Messages postés mardi 19 décembre 2006Date d'inscription 2 juillet 2007 Dernière intervention - 28 mars 2007 à 07:33
0
Utile
Bonjour pilaf, peux tu donner un petit exemple ?
Je ne comprend pas bien ce que tu souhaites obtenir...
Commenter la réponse de daddycool76
cs_pilaf 24 Messages postés lundi 6 février 2006Date d'inscription 18 mars 2010 Dernière intervention - 28 mars 2007 à 11:09
0
Utile
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.
Commenter la réponse de cs_pilaf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

procedure vb pour access - page 2