Avatar billede lunddata Nybegynder
05. september 2004 - 10:44 Der er 9 kommentarer og
2 løsninger

Kald af funktion

Har kigget i tidligere besvarelse på et lignende problem som jeg har:
http://eksperten.dk/spm/119080
Synes ikke at jeg kan få dette til at virke når jeg har en funktion "stoerste" og vil kalde denne i en formular:
Private Sub diskoskast1kg_AfterUpdate()
call stoerste
End Sub
Avatar billede mugs Novice
05. september 2004 - 11:11 #1
Det burde fungere. Husk at værdien i feltet skal ændres før AfterUpdate indtræder.
Avatar billede lunddata Nybegynder
05. september 2004 - 11:31 #2
Får en fejlmelding: Compile Error.
Forstår det ikke helt.
Jeg har fire tal hvor de fire tal er frembragt hver for sig beregnet ud fra data som bedste tal1, bedste tal2, bedste tal3, bedste tal4. Ud af disse 4 tal er det så jeg vil have vist stoerste.
Jeg kan forøvrigt fortælle at stoerste fint kommer frem i forespørgsel, men altså ikke i formularen...
Avatar billede fynbohans Nybegynder
05. september 2004 - 14:17 #3
Prøv [FeltetsNavn] = stoerste().
Hvordan ser funktionen ud?
Avatar billede lunddata Nybegynder
05. september 2004 - 20:48 #4
Funktionen virker som sagt udmærket, hvilket jeg kan konstatere ved at jeg får stoerste frem i forespørgsel. Funktionen ser således ud.
Function stoerste(tal1, tal2, tal3, tal4) As Long
    Dim status As Boolean
    Dim var As Variant
    Dim temp As Long
   
    var = Array(tal1, tal2, tal3, tal4)
    Do
        status = False
        For i = 0 To 2
   
            If var(i) > var(i + 1) Then
                status = True
                temp = var(i)
                var(i) = var(i + 1)
                var(i + 1) = temp
            End If
        Next i
    Loop Until status = False
    'Debug.Print var(0) & var(1) & var(2) & var(3)
    stoerste = var(3)
End Function

Jeg prøvede lige muligheden fra fynbohans. Denne virkede heller ikke.
Avatar billede mugs Novice
05. september 2004 - 20:51 #5
Jeg mener betingelsen skal med i Do og ikke i Loop:

Function stoerste(tal1, tal2, tal3, tal4) As Long
    Dim status As Boolean
    Dim var As Variant
    Dim temp As Long
   
    var = Array(tal1, tal2, tal3, tal4)
    Do Until status = False
        status = False
        For i = 0 To 2
   
            If var(i) > var(i + 1) Then
                status = True
                temp = var(i)
                var(i) = var(i + 1)
                var(i + 1) = temp
            End If
        Next i
    Loop
    'Debug.Print var(0) & var(1) & var(2) & var(3)
    stoerste = var(3)
End Function
Avatar billede lunddata Nybegynder
05. september 2004 - 21:57 #6
Til mugs:
Resultatet i mine forespørgsler er at dit forslag også finder stoerste i forespørgslen, men stoerste blev også fundet ved den hidtidige funktion.
Men hvordan pokker får jeg stoerste frem i formularen????????
Avatar billede mugs Novice
05. september 2004 - 22:01 #7
Du må jo have et felt i formularen der sættes = stoerste.
Avatar billede lunddata Nybegynder
05. september 2004 - 22:05 #8
Jeg har et felt med stoerste i formularen
Avatar billede fynbohans Nybegynder
05. september 2004 - 22:24 #9
En anden version af funktionen:

Function Stoerste(Tal1,Tal2,Tal3,Tal4) as Variant
Dim x as Variant
Dim Maxtal As Variant

x = Tal1
MaxTal = x
x = Tal2
IF x>=MaxTal THEN MaxTal = x
x = Tal3
IF x>=MaxTal THEN MaxTal = x
x = Tal4
IF x>=MaxTal THEN MaxTal = x

Stoerste = MaxTal
END FUNCTION

I Kontrolelementkilde skriver du:
=Stoerste(Tal1,Tal2,Tal3,Tal4)
Avatar billede lunddata Nybegynder
06. september 2004 - 16:27 #10
Jeg må bryde sammen og tilstå at jeg ikke lige havde været vågen nok da jeg havde sat postkilden i formularen til at være en tabel fremfor forespørgslen, - hvor dumt......
Tak for jeres ulejlighed. Jeg beklager, men er dog alligevel glad for at I hjalp på vej.
Avatar billede mugs Novice
06. september 2004 - 17:15 #11
: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