OVH Cloud OVH Cloud

Private Function Vs. Private Sub

1 réponse
Avatar
fth
Bonjour,

afin de simplifier le dévelopement et la maintenance, il est souvent plus
simple de passer par une procédure.
Dans cette optique, j'ai ceci:

Private Sub....
Me.FilterOn = False
Me.RecordSource = "QyBenevNotExclude"
Me.Filter = "SECTOR ='" & Me!BtsSector & "'"
Me.FilterOn = True
Me.Refresh

ça me permet de faire des sélections sur n'importe quels champs de mon
formulaire avec un petit combobox.

Plutot que le remettre en private sub pour chaque champs, je préfererais
faire une Private Function, que j'imagine comme ceci:

Private Function FilterMyForm (Dfield, Ffield as string)
'Dfield pour "dataFiled" et Ffield pour "FormField"

Me.FilterOn = False
Me.Filter = "dataFiled='" & Me!Ffield & "'"
Me.FilterOn = True
Me.Refresh

End Function

Alors, si je me retrouve ici, nu comme un ver et le front bas, c'est que ça
ne fonctionne pas ;-)
j'ai un peu de mal avec les ", et les ' pour ne pas parler des & dans le
code (enfin, c'est la que ça chifonne)

une suggestion?

d'avance merci et bon we à vous,

Frédéric

1 réponse

Avatar
Sylvain Lafontaine
Ffield est une variable chaîne de caractères, vous devez donc écrire:

Me.Filter = "dataFiled='" & Me (Ffield) & "'"

De plus, je ne suis pas sûr si JET va accepter l'apostrophe ' comme
caractère de délimitation, vous seriez mieux d'utiliser les guillements, en
les doublant dans votre énoncé:

Me.Filter = "dataFiled=""" & Me (Ffield) & """"

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"fth" <infosSPAM?@matloc.be> wrote in message
news:
Bonjour,

afin de simplifier le dévelopement et la maintenance, il est souvent plus
simple de passer par une procédure.
Dans cette optique, j'ai ceci:

Private Sub....
Me.FilterOn = False
Me.RecordSource = "QyBenevNotExclude"
Me.Filter = "SECTOR ='" & Me!BtsSector & "'"
Me.FilterOn = True
Me.Refresh

ça me permet de faire des sélections sur n'importe quels champs de mon
formulaire avec un petit combobox.

Plutot que le remettre en private sub pour chaque champs, je préfererais
faire une Private Function, que j'imagine comme ceci:

Private Function FilterMyForm (Dfield, Ffield as string)
'Dfield pour "dataFiled" et Ffield pour "FormField"

Me.FilterOn = False
Me.Filter = "dataFiled='" & Me!Ffield & "'"
Me.FilterOn = True
Me.Refresh

End Function

Alors, si je me retrouve ici, nu comme un ver et le front bas, c'est que
ça ne fonctionne pas ;-)
j'ai un peu de mal avec les ", et les ' pour ne pas parler des & dans le
code (enfin, c'est la que ça chifonne)

une suggestion?

d'avance merci et bon we à vous,

Frédéric