Avatar billede pecl Nybegynder
22. juli 2003 - 15:23 Der er 14 kommentarer og
1 løsning

Lave en fælles function for flere kontrolelementer til farveskift

Kan man lave en fælles function som kan kaldes af flere kontrolelementer i en Formular - f.eks hvis man vil have  tekstfelter til at skifte farve ved indtastning i det enkelte tekstfelt. Istedet for at lave en If osv. på hvert felt - kan man så lave en fælles med F.eks. "If.me>0 then skift farve". Eller skal koden skrives for hvert felt ?
Avatar billede terry Ekspert
22. juli 2003 - 15:29 #1
yes
In the controls On Click Event property (for exampel)

you would write
=YourFunction()
Avatar billede terry Ekspert
22. juli 2003 - 15:30 #2
You make your function as normal and in the controls event call the function as described above.
Avatar billede terry Ekspert
22. juli 2003 - 15:32 #3
If the function takes paramaters you just add them to the call

=YourFunction(1, "Hej")
Avatar billede pecl Nybegynder
22. juli 2003 - 15:36 #4
>Terry
Hvordan skrives functionen så den referere til alle felter F.eks
If IsNull(Me) then
Me.backcolor= 454545
else
Me.backcolor =121212
End if

Den virker ikke på Me - hvad skal der stå istedet ?
Avatar billede mugs Novice
22. juli 2003 - 15:42 #5
Private Sub felt1_BeforeUpdate(Cancel As Integer)
If Me.felt1 = "a" Then
Me.felt2.BackColor = 255
End If
End Sub
Avatar billede mugs Novice
22. juli 2003 - 15:46 #6
Me refererer til den aktuelle formular. Me med en punktumnotation efterfulgt af et feltnavn refererer til formularens felt. f.eks:

Me.felt1 > refererer til den akruelle formular's felt1.

I det tidligere nævnte eksempel kan du indsætte flere kommandoer:

If Me.felt1 = "a" Then
Me.felt2.BackColor = 255
Me.felt3.forecolor = 255
Me.felt4.Visible = False
o.s.v.
End If
Avatar billede terry Ekspert
22. juli 2003 - 15:48 #7
pecl>I have NO idea what your trying to do so ist hard to give e precise example!

Lets say you make a function

MyFunction (inVal as Integer)

select case inval

case 1
Me.backcolor= 454545
Case 2
Me.backcolor =121212
Case 3
Me.backcolor = ......
End select


Then in the after update (example) event for a field (directly in the property)

you could write

=MyFunction(1)

and in the On click event for a button you could write

=MyFunction(2)



End function
Avatar billede terry Ekspert
22. juli 2003 - 15:48 #8
oops

MyFunction (inVal as Integer)

select case inval

case 1
Me.backcolor= 454545
Case 2
Me.backcolor =121212
Case 3
Me.backcolor = ......
End select

End function
Avatar billede pecl Nybegynder
23. juli 2003 - 08:04 #9
> hej Terry
Så er jeg tilbage..
Jeg har en formular med mange tekstfelter som efter indtastning bliver tilføjet via en tilføjelsesforespørgsel.
Det jeg så ønsker er en generel function som skifter farven på det tekstfelt der bliver skrevet i.  det skal  kun virke mens formularen er åben indtil forespørgslen bliver kørt. Så jeg mente at hvis der findes en function der virker på <Aktuelle felt> så kan man undgå at skrive så meget kode.
Avatar billede terry Ekspert
23. juli 2003 - 08:45 #10
No matter which method you use it will ALWAYS require something from you. By this I mean change a property to tell Access what colour a specific field is to have and under which conditions. The code I have given so far should work, but as I say it requires something from you.

You may also be able to use conditional formatting, but again YOU have to tell Access that you are using it and what is supposed to happen and when. Conditional formatting is found by selecting one or more fields and then in the formatting menu choose conditional formatting. If thats not what you want then I think your out of luck :o(
Avatar billede terry Ekspert
23. juli 2003 - 09:39 #11
pecl>thanks for the points, I hope you got a solution you could use ?
Avatar billede pecl Nybegynder
23. juli 2003 - 09:41 #12
>Terry
Jeg fik ikke hvad jeg søgte efter - det kan nok ikke lade sig gøre - men din function med case 1 - case 2 osv. gør da kodeskrivningen mere overskuelig istedet for at skrive en function ved hvert kontrolelement.
Avatar billede terry Ekspert
23. juli 2003 - 09:47 #13
Actually the SELECT Case was what I thought you were after. Have you looked at conditionla formatting?
Avatar billede pecl Nybegynder
23. juli 2003 - 10:21 #14
>Terry
Jeg køre access97 - så jeg har ikke betinget formatering. Men Select case virker fint og gør det mere overskueligt.
Avatar billede terry Ekspert
23. juli 2003 - 10:53 #15
OK :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester