Code VBA qui plante lorsque base déployée avec le runtime 2013
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:
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:
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:
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