???
tu voulais peut-etre simplement le code![]()
et voici la requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Res___mois_Click() On Error GoTo Err_Res___mois_Click Dim qdf As DAO.QueryDef Dim rcs As DAO.Recordset Set qdf = CurrentDb.QueryDefs("Résultat d'un mois défini") Set rcs = qdf.OpenRecordset MsgBox rcs("resultat") Set qdf = Nothing Exit_Res___mois_Click: Exit Sub Err_Res___mois_Click: MsgBox Err.Description Resume Exit_Res___mois_Click End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 SELECT ROUND((SELECT (SELECT (NZ (Sum(montant),0)/1.196) AS ventesdumois FROM Mouvements WHERE (Origine="client") AND (year(echéance)=[Formulaires]![menu]![annee]) and (month(echéance)=[Formulaires]![menu]![mois]) ) - (SELECT (NZ (Sum(montant),0)/1.196) AS achatsdumois FROM Mouvements WHERE (Destination="fournisseur") AND (year(echéance)=[Formulaires]![menu]![annee]) and (month(echéance)=[Formulaires]![menu]![mois]) ) AS Résultat FROM Mouvements GROUP BY "Résultat") - (SELECT (SELECT (NZ (Sum(montant),0)/1.196) AS retoursclient FROM Mouvements WHERE (Destination="client") AND (year(echéance)=[Formulaires]![menu]![annee]) and (month(echéance)=[Formulaires]![menu]![mois]) ) - (SELECT (NZ (Sum(montant),0)/1.196) AS retoursfseurs FROM Mouvements WHERE (origine="fournisseur") AND (year(echéance)=[Formulaires]![menu]![annee]) and (month(echéance)=[Formulaires]![menu]![mois]) ) AS Resultatret FROM Mouvements GROUP BY "Résultat"),2) AS Resultat FROM Mouvements GROUP BY "resultat";
lorsque tu test ton programme qu'écrit tu dans tes deux zones de textes.
dans ton formulaire vérifie bien que les noms de tes zones de texte sont bien annee et mois.
en mode création tu clique sur la zone de texte (pas sur l'étiquette) et tu regarde les noms.
Dans "mois", j'écris 6
Dans "annee", j'écris 2006
Lorsque j'éxécute ma requete, cela marche et me donne bien le résultat exact de juin.
Mais lorsque je lance le clic bouton, cela m'indique l'erreur habituelle
Mes boutons sont bien nommés "mois" et "annee" (annee sans accent)
Code : Sélectionner tout - Visualiser dans une fenêtre à part trop peu de paramètres, 2 attendus
je pense donc que l'erreur vient du programme VB si ma requete fonctionne...
lorsque tu clique directement sur ta requête dans l'onglet requête d'acces il y a des boites de dialogue qui apparaissent te demandant de saisir le mois et l'année ???
ton formulaire s'appelle bien menu ?
tu dois vérifier toutes les petites erreurs possibles.
Lorsque je clique directement sur ma requete, elle s'éxécute selon ce qui est inscrit dans mes zones de texte "mois" et "annee" sur mon formulaire.
Il n'y a aucune boite de dialogue qui s'ouvre.
Mon formulaire se nomme bien "menu"
je fouille pour trouver de petites erreurs mais je ne trouve rien
J'ai trouvé une solution.
Le probleme résidait dans le fait que les chiffres tapés dans les zones de textes sont "en mémoire" selon ce qu'on m'a dit...
Alors j'ai créé une nouvelle table appellée "parametres"
Dans cette table, il y a la clé primaire "numpara", et des champs "jour", "mois", "annee" et "nbrjour".
J'ai donc modifié ma requete en conséquence.
De plus j'ai créé 2 nouvelles requetes, une de suppression, et une d'ajout.
Suppression :
ajout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DELETE * FROM parametres WHERE NumPara=1;
Donc je voudrais ne travailler que sur une unique ligne qui serait "actualiser" a chaque fois que je change les valeurs de mes zones de texte sur mon formulaire "menu"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO parametres ( Numpara, jour, mois, annee, nbrjour ) VALUES (1, formulaires!menu!jour, formulaires!menu!mois, formulaires!menu!annee, formulaires!menu!nbrjour);
Ce que je cherche a faire maintenant, c'est modifier mon programme VB sur clic bouton...
j'aimerai donc rajouter dans cette instuction VB, l'éxécution de mes 2 nouvelles requetes, dans l'ordre bien précis : suppression, puis ajout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Res___mois_Click() On Error GoTo Err_Res___mois_Click Dim qdf As dao.QueryDef Dim rcs As dao.Recordset Set qdf = CurrentDb.QueryDefs("Résultat d'un mois défini") Set rcs = qdf.OpenRecordset MsgBox rcs("resultat") Set qdf = Nothing Exit_Res___mois_Click: Exit Sub Err_Res___mois_Click: MsgBox Err.Description Resume Exit_Res___mois_Click End Sub
Ce qui fait qu'a chaque clic bouton, l'enregistrement de ma table "parametres" sera modifié
Pourriez-vous donc m'indiquer ce qu'il faut que je rajoute dans mon instruction VB afin qu'elle exécute aussi ces 2 requetes ?
Bon, j'ai réglé mon probleme, mes boutons fonctionnent.
Voici mon code VB
c'est un peu du charabia, mais je débute dans ce domaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Sub Res___mois_Click() On Error GoTo Err_Res___mois_Click Dim qdf As dao.QueryDef Dim rcs As dao.Recordset Dim sSql As String Dim dbsNorthwind As Database Dim strSQLChange As String Dim strSQLRestore As String Dim qdfChange As QueryDef Dim rstFonction As Recordset Dim errLoop As Error Set qdf = CurrentDb.QueryDefs("effacer parametres") qdf.Execute strSQLChange = "INSERT INTO parametres ( Numpara, jour, mois, annee, nbrjour ) " _ & "VALUES (1," & Me.Jour.Value & "," & Me.Mois.Value & "," & Me.Annee.Value & "," & IIf(IsNull(Me.NbrJour.Value), 0, Me.NbrJour.Value) & ")" Set dbsNorthwind = OpenDatabase("c-ent.mdb") Set qdfChange = dbsNorthwind.CreateQueryDef("", _ strSQLChange) ExecuteQueryDef qdfChange, rstFonction Set qdf = CurrentDb.QueryDefs("Résultat d'un mois défini") Set rcs = qdf.OpenRecordset MsgBox rcs("resultat") & " " Set qdf = Nothing Exit_Res___mois_Click: Exit Sub Err_Res___mois_Click: MsgBox Err.Description Resume Exit_Res___mois_Click End Sub
Merci à Greg64 qui m'a aidé a avancer dans ce probleme
A bientot
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager