Bonjour tout le monde !
Dans une BD multilingue, j'ai de nombreuses tables de compta comportant un champ "PaymentModeID"
La valeur PaymentModeID vient d'une petite table-outil / lookup "tbPaymentModes" où les modes de paiement sont exprimés en cinq langues dans cinq colonnes-texte : PaymentModeFra, PaymentModeEng, PaymentModeNed,...
Dans tous les formulaires en mode continu, le changement en mode exécution par VBA du ControlSource de la zone texte "txtPaymentMode" de PaymentModeFra, PaymentModeEng, PaymentModeNed se passe nickel à chaque changement de langue.
Il n'en va pas de même avec les états. (Fallait s'en douter !)
Sur une dizaine d'états comportant ce champ "tbPaymentModes", neuf fonctionnent nickel, mais il y en a un qui cafouille, je ne comprends pas pourquoi !!!
Toutes les conditions sont absolument comparables, et le code VBA est identique !!!
Le RecordSource de l'état est soit une chaine SQL, soit le nom d'une QueryDef générée en temps réel par le bouton d'ouverture de l'état dans un formulaire.
Le ControlSource de la zone-texte est fixé dès l'ouverture de l'état, donc bien avant OnFormat, bien avant que les données soient chargées.
Eh bien dans ce foutu état, (que j’ai déjà complètement reconstruit from scratch deux fois), Access mouline quelques secondes, et plante sans aucun message d'erreur ! Idem sur plusieurs machines.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Report_Open(Cancel As Integer) If CrtLanguageID = 1 Then Me.txtPaymentMode.ControlSource = "PaymentModeFra" ElseIf CrtLanguageID = 2Then Me.txtPaymentMode.ControlSource = "PaymentModeEng" 'etc End If end sub
Quelqu'un a-t-il déjà vu ça ??? Je me creuse la tête pour identifier la cause, mais je ne trouve pas. Je me demande s'il ne faudrait pas passer à Access 2010 !
Merci d'avance pour vos suggestions éclairées !
phil
Partager