Help pr un code vba rattaché a un bouton dans un formulaire
fred.bis
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 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
--------------------------------------------------------------------------------
A voir également:
- Help pr un code vba rattaché a un bouton dans un formulaire
- Whatsapp formulaire opposition - Guide
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Comment débloquer un code puk - Guide
- Formulaire de réclamation facebook - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
ta requete sera sans doute
ton code serait quelque-chose comme:
ta requete sera sans doute
SELECT 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
fred.bis
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
merci beaucoup pour ta reponse mais ca me fait erreur quand je le mets dans ma macro ILS ME METTENT ERREUR DE COMPILATION ET la 1 er partie jusqua DIM RS est en rouge
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
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
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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
suggestion:
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.
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
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.
peux-tu maintenant partager le code SQL de ta requete?
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?