Procedure vb pour access

Résolu
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010 - 16 mars 2007 à 13:10
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010 - 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.

30 réponses

daddycool76 Messages postés 56 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 2 juillet 2007
18 mars 2007 à 19:27
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é
3
daddycool76 Messages postés 56 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 2 juillet 2007
18 mars 2007 à 09:56
Houlala c'est pas trés clair !!Peux tu préciser ?
Ta troisième table comment v-t-elle choisir la devise à sauvegarder ?
0
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
18 mars 2007 à 16:45
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
0
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
18 mars 2007 à 21:00
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
19 mars 2007 à 04:11
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.
0
daddycool76 Messages postés 56 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 2 juillet 2007
19 mars 2007 à 07:14
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. @ +
0
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
19 mars 2007 à 10:47
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
0
daddycool76 Messages postés 56 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 2 juillet 2007
19 mars 2007 à 11:44
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.  
0
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
19 mars 2007 à 13:18
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.
0
cs_pilaf Messages postés 24 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 18 mars 2010
22 mars 2007 à 12:53
ç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
0
daddycool76 Messages postés 56 Date d'inscription mardi 19 décembre 2006 Statut Membre Dernière intervention 2 juillet 2007
22 mars 2007 à 13:17
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.

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





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



je vais pouvoir avancer grace a toi,





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