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:

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 le formulaire nommé : Form_Frm_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
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.
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