Bonjour,
Je ne connais rien au VBA. J'ai développé une toute petite base documentaire dont les tables sont liées. Dans cette base il y a du code VBA (que j'ai trouvé sur votre site -grand merci-) et que j'ai recopié tel quel. Il sert à créer un état sur filtre de formulaire. Je n'ai pas trouvé comment le faire autrement que par VBA. Il fonctionne parfaitement sur les ordis qui ont access mais ne fonctionne plus dès que je déploie avec un runtime sur un ordi qui n'a pas access.
Pourriez-vous m'aider, s'il vous plaît ?
Je vous mets ci-dessous le code du module et les codes de l'état et du formulaire que j'ai nommés exactement comme le code que j'ai trouvé pour être sûre que ça marche même si cela n'a rien à voir avec le contenu. (je pense que vous le reconnaîtrez :-)
Module nommé synchro_etats:
Le code trouvé dans le formulaire nommé : Form_Frm_Stocks
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 Option Compare Database Option Explicit Public Function Report_Synchro(FrmFilter As Form, RepFilter As Report) 'FrmFilter : Variable Nom du formulaire 'RepFilter : Variable Nom de l'état correspondant Dim ExpFiltre As String 'Variable expression de filtre Dim ExpTri As String 'Variable expression de tri ExpFiltre = FrmFilter.Filter 'Récupère l'exprssion de filtre du formulaire ExpTri = FrmFilter.OrderBy 'Récupère l'expression de tri du formulaire RepFilter.RecordSource = FrmFilter.RecordSource 'affecte à l'état la même source que le formulaire 'Si le formulaire est filtré nous attribuons à l'état l'expression stockée dans la variable ExpFiltre If FrmFilter.FilterOn Then RepFilter.Filter = ExpFiltre RepFilter.FilterOn = True Else RepFilter.FilterOn = False End If 'Si le formulaire est trié attribuons à l'état l'expression stockée dans la variable ExpTri If FrmFilter.OrderByOn Then RepFilter.OrderBy = ExpTri RepFilter.OrderByOn = True Else RepFilter.OrderByOn = False End If ' Emplois '-------------------------------------------------------- End Function
Le code trouvé dans l'Etat nommé Report_Rpt_Stocks
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Option Compare Database Option Explicit Private Sub Report_Open(Cancel As Integer) 'Appelle la fonction synchro de l'état Call Report_Synchro(Form_Frm_Stocks, Report_Rpt_Stocks) End Sub
Sur mon formulaire j'ai un bouton qui ouvre l'état.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Option Compare Database Option Explicit Private Sub Report_Open(Cancel As Integer) 'Appelle la fonction synchro de l'état Call Report_Synchro(Form_Frm_Stocks, Report_Rpt_Stocks) End Sub
Merci d'avance et infiniment à tous ceux qui prendront la peine de me lire et de m'aider. Je vous avoue que cela fait un mois que j'essaie de régler ce problème et là je baisse les bras.
Line
Partager