Help pr un code vba rattaché a un bouton dans un formulaire
fred.bis
Messages postés
13
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis un peu novice en matière de programmation de macro, mais j'essaye de m'y intéresser et de comprendre.
Je souhaiterais avoir quelques notions pour creer un code vba qui sera rattaché a un bouton ( qui se trouve dans un formulaire que jai deja crée sur access) est qui contient :
une zone pour remplir le code ptf voulu
une zone pour la date
et une zone pour le montant
cest 3 donnees je vais les remplir a chaque fois et tout en bas jai mis un bouton appelé ( lancer) qui contient un code vba ce code me permettra de recupere des coef dans une requettes access requete que j'appel grace au code vba
DoCmd.OpenQuery "ma_requete"
( chaque coef est rattaché a un produit ( il y en a 2 appelé A et B a chaque fois ). apres avoir remplis le montant voulu des qu'on appuie sur lancer je voudrai que ca me calcul montant * coef puis le mettre dans les zones voulu appelé A et B .
pour un code_ptf le coef est le meme pour tout les produits A exemple 85% et pareil pour le produit B 15%
je vous remercie par avance de votre aide
--------------------------------------------------------------------------------
Je suis un peu novice en matière de programmation de macro, mais j'essaye de m'y intéresser et de comprendre.
Je souhaiterais avoir quelques notions pour creer un code vba qui sera rattaché a un bouton ( qui se trouve dans un formulaire que jai deja crée sur access) est qui contient :
une zone pour remplir le code ptf voulu
une zone pour la date
et une zone pour le montant
cest 3 donnees je vais les remplir a chaque fois et tout en bas jai mis un bouton appelé ( lancer) qui contient un code vba ce code me permettra de recupere des coef dans une requettes access requete que j'appel grace au code vba
DoCmd.OpenQuery "ma_requete"
( chaque coef est rattaché a un produit ( il y en a 2 appelé A et B a chaque fois ). apres avoir remplis le montant voulu des qu'on appuie sur lancer je voudrai que ca me calcul montant * coef puis le mettre dans les zones voulu appelé A et B .
pour un code_ptf le coef est le meme pour tout les produits A exemple 85% et pareil pour le produit B 15%
je vous remercie par avance de votre aide
--------------------------------------------------------------------------------
4 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
ta requete sera sans douteSELECT produit, coef from tableproduit WHERE produit = "A" or produit = "B"
ton code serait quelque-chose comme:sSQL = "SELECT produit, coef from tableproduit WHERE produit = 'A' or produit = 'B'" Dim rs As DAO Recordset Set rs = CurrentDB.OpenRecordset(sSQL) Do While Not rs.EOF select case rs!produit case "A" Me!coeff_A=rs!coef case "B" Me!coeff_B=rs!coef end select rs.MoveNext Loop -
voila ce que jai mis mais malgré tout ca ne marche pas et on me mets en rouge de sSQL et dim
Private Sub lancer_calcul_Click()
DoCmd.OpenQuery "HR/L"
sSQL = "SELECT CODE_PART, COEFFICIENT_PART from HR/L WHERE CODE_PART = "A" or CODE_PART = "B""
Dim rs As DAO Recordset
Set rs = CurrentDb.OpenRecordset(sSQL)
Do While Not rs.EOF
Select Case rs!produit
Case "A"
Me!COEFFICIENT_PART_A = rs!COEFFICIENT_PART
Case "B"
Me!COEFFICIENT_PART_B = rs!COEFFICIENT_PART
End Select
rs.MoveNext
Loop-
et ainsi?
Option Explicit Private Sub lancer_calcul_Click() 'DoCmd.OpenQuery "HR/L" sSQL = "SELECT CODE_PART, COEFFICIENT_PART from HR/L WHERE CODE_PART = 'A' or CODE_PART = 'B'" Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset(sSQL) Do While Not rs.EOF Select Case rs!produit Case "A" Me!COEFFICIENT_PART_A = rs!COEFFICIENT_PART Case "B" Me!COEFFICIENT_PART_B = rs!COEFFICIENT_PART End Select rs.MoveNext Loop
-
-
EN FAITE JAI RAJOUTé [HR/L] il ny a plus de message d'erreur mais ca fait que ouvrir ma requete sans aucun calcul
-
et ainsi?
Option Explicit Private Sub lancer_calcul_Click() Dim sSQL as string Dim rs As DAO.Recordset sSQL = "SELECT CODE_PART, COEFFICIENT_PART from HR/L WHERE CODE_PART = 'A' or CODE_PART = 'B'" DoCmd.OpenQuery sSQL Set rs = CurrentDb.OpenRecordset(sSQL) Do While Not rs.EOF Select Case rs!CODE_PART Case "A" Me!A = rs!COEFFICIENT_PART * Me!montant Case "B" Me!B = rs!COEFFICIENT_PART * Me!montant End Select rs.MoveNext Loop
-
jai modifier la methode la methode jai crée 2 requete ( requete 1 et requete 2) avec des champs calculé
la je dois juste trouver le bon code vba qui me permetra d'appelé le resultat de la requete 1 dans la zone 1 du formulaire et le resultat de la requete 2 dans une zone du formulaire .en gros quand j'appuie sur le bouton il me recupere juste les calculs deja fait dans mes requetes et les mets dans le formulaire
merci d'avance pour votre aide -
-
-
-
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
suggestion:Option Explicit Private Sub lancer_calcul_Click() Dim sSQL as string Dim rs As DAO.Recordset sSQL = "SELECT CODE_PART, COEFFICIENT_PART from HR/L WHERE CODE_PART = 'A' or CODE_PART = 'B'" 'DoCmd.OpenQuery sSQL Set rs = CurrentDb.OpenRecordset(sSQL) Do While Not rs.EOF Select Case rs!CODE_PART Case "A" Me!A.Value = rs!COEFFICIENT_PART * Me!montant Case "B" Me!B.Value = rs!COEFFICIENT_PART * Me!montant End Select rs.MoveNext Loop
si cela ne fait rien, retire le commentaire en début de ligne "docmd", et décris ce qui est affiché par la requête.-
-
je crée une requete avec le code_ptf , le code_part, la date et jai rajouté un champs pour le calcul où jai mis le resultat=[COEFFICIENT_PART]*[Formulaires]![Formulaire1]![TEXTE2]/100
le[texte2] cest la case où je remplis mon montant
APRES jecris le montant que je veux dans mon formulaire puis je raffraichei ma requete et elle me donne comme resultat le montant pour chaque produit .
mais ca ne s'affiche pas dans mon formulaire que dans la requete .sauf que je voudrai que ca s'affiche dans mon formulaire quand jappuie sur le bouton- on progresse, je sais maintenant que le montant est dans [TEXTE2] et doit être divisé par 100. j'ai adapté le code ci-dessous en tenant compte de cela.
Option Explicit Private Sub lancer_calcul_Click() Dim sSQL as string Dim rs As DAO.Recordset sSQL = "SELECT CODE_PART, COEFFICIENT_PART from HR/L WHERE CODE_PART = 'A' or CODE_PART = 'B'" 'DoCmd.OpenQuery sSQL Set rs = CurrentDb.OpenRecordset(sSQL) Do While Not rs.EOF Select Case rs!CODE_PART Case "A" Me!A.Value = rs!COEFFICIENT_PART * Me![TEXTE2] / 100 Case "B" Me!B.Value = rs!COEFFICIENT_PART * Me![TEXTE2] / 100 End Select rs.MoveNext Loop
peux-tu maintenant partager le code SQL de ta requete?
-