0

Avoir le code suivant sur une classe de formulaire dans Access 2003:Comment appeler la fonction de la classe d'un formulaire ou d'accéder à la propriété d'une expression de mise en forme conditionnelle

Public currentId As Integer 

Private Sub Form_Current() 
    Me.currentId = Me.id 
    ' The following works fine 
    Debug.Print Forms!my_form_name.currentId 
End Sub 

... et une zone de texte non liée dans le même continu formulaire (créé en mode Création), comment puis-je accéder à la propriété .currentId à partir d'une expression de mise en forme conditionnelle? Je souhaite utiliser la zone de texte non liée pour mettre en surbrillance l'enregistrement actuellement sélectionné en comparant la valeur .currentId du formulaire avec la valeur [id] de son propre enregistrement.

Quelques expressions que j'ai essayées:

[id] = Me.currentId 
[id] = Me!currentId 
[id] = Me.Form.currentId 
[id] = Forms!my_form_name.currentId 
[id] = Forms!my_form_name!currentId 
[id] = Forms!my_form_name!Form.[currentId] 
[id] = Forms!my_form_name!Form!currentId 
[id] = Forms!my_form_name!Form[currentId] 
[id] = Forms!my_form_name![currentId] 
[id] = Forms![my_form_name].[currentId] 
[id] = Forms![my_form_name]![currentId] 

... etc, etc, etc. Toute variante que je pouvais penser, au fond..

J'ai aussi essayé de créer un Public Function getCurrentId(), mais cela ne m'a pas non plus permis de le faire. Il se plaignait même quand j'ajouté entre parenthèses dans l'expression, comme ceci:

[id] = Forms!my_form_name.getCurrentId() 

... que je devrais peut-être prendre comme une indication que ces expressions plus complexes ne sont probablement pas autorisés pour les expressions de mise en forme conditionnelle.

Alors, je manque quelque chose? Ou est-il simplement impossible de référencer autre chose que les champs d'enregistrement actuels dans ces expressions de mise en forme conditionnelle?


Un autre détail qui pourrait être important de mentionner, est que Access 2003 localise la partie Forms-Formulieren dans la boîte de dialogue d'expression mise en forme conditionnelle, dans la version néerlandaise, je me sers.

Répondre

1

Si vous avez une zone de texte non liée caché appelé dire txtCurrRec sur votre ligne de détail, définis par le biais de l'événement en cours par

Me.txtCurrRec = Me.Id 

Ensuite, tout ce dont vous avez besoin dans la mise en forme conditionnelle est

Expression is [txtCurrRec] = [YourIDField] 
+0

Yep , c'est ce que j'ai fait, pour l'instant, aussi. :-) J'aimerais quand même savoir quelle syntaxe est autorisée dans la mise en forme conditionnelle et/ou pourquoi mes tentatives ont échoué. –

+0

Par intérêt avez-vous essayé simplement [CurrentID] = [ID]? – Minty

+0

Cela pourrait bien être la seule chose que je n'ai pas essayé, non. :-) Je le ferai un peu plus tard aujourd'hui, si je travaille de nouveau sur le projet, et je vous dirai si cela a fonctionné. –