Avatar billede hlnviv Mester
20. december 2006 - 16:52 Der er 19 kommentarer og
1 løsning

And. til terry Et kriterie i en forespørgsel

ups jeg har et modul der beregner gennemsnittet af felterne den melder fejl
ved sum = sum + pArray(i)


Public Function Average(ParamArray pArray() As Variant) As Single
Dim i As Double
Dim counter As Double
Dim sum As Double
  For i = 0 To UBound(pArray)
    If Not IsNull(pArray(i)) Then
      sum = sum + pArray(i)
      counter = counter + 1
    End If
  Next i
  If counter > 0 Then
    Average = sum / counter
  Else
    Average = 0
  End If
 
End Function
Avatar billede terry Ekspert
20. december 2006 - 17:48 #1
Where do you call the function from? I see the function in the module but I dont see where it is called from.
Avatar billede hlnviv Mester
20. december 2006 - 18:18 #2
Der gør jeg i
Gennemsnit: Average([Udtryk1];[Udtryk2];[Udtryk3];[Udtryk4];[Udtryk5];[Udtryk6])
Avatar billede hlnviv Mester
20. december 2006 - 18:19 #3
hvis jeg bruger dit eks.
Gennemsnit3: Average([Terry];[Terry2])
Avatar billede hlnviv Mester
20. december 2006 - 18:22 #4
det ser ud til at den ikke kan finde ud af at beregne hvis der er felter der er tomme
Avatar billede hlnviv Mester
20. december 2006 - 18:23 #5
har du min DB endnu ?
Avatar billede terry Ekspert
20. december 2006 - 18:28 #6
You can use the nzfunction to conver NULL to 0

Example

nz(Terry;0)
Avatar billede hlnviv Mester
20. december 2006 - 18:31 #7
kan det ikke laves om i modulet ?
Avatar billede hlnviv Mester
20. december 2006 - 18:34 #8
det gør det jo fin nok i
Gennemsnit: Average([Udtryk1];[Udtryk2];[Udtryk3];[Udtryk4];[Udtryk5];[Udtryk6])
Udtryk1: ([FN__1]*1000)/([BREDDE__1]*[L_NGDE_1])
men ikke i
Gennemsnit3: Average([Terry];[Terry2])
Terry: IIf(([FN__1]*1000)/([BREDDE__1]*[L_NGDE_1])>10;CInt(([FN__1]*1000)/([BREDDE__1]*[L_NGDE_1]));Format(([FN__1]*1000)/([BREDDE__1]*[L_NGDE_1]);"Fast"))
Avatar billede terry Ekspert
20. december 2006 - 18:36 #9
I'm not sure what data is getting sent to the function Average when it gives problems

Try this
For i = 0 To UBound(pArray)
    If Not IsMissing(pArray(i)) Then
      sum = sum + pArray(i)
      counter = counter + 1
    End If
  Next i


I have changed IsNull to IsMissing
Avatar billede terry Ekspert
20. december 2006 - 18:36 #10
Can you send me your dB with the extra parameters?
Avatar billede hlnviv Mester
20. december 2006 - 18:42 #11
jep jeg sender nu
Avatar billede terry Ekspert
20. december 2006 - 18:52 #12
If Len(pArray(i)) > 0 Then
Avatar billede terry Ekspert
20. december 2006 - 18:52 #13
:o)
Avatar billede terry Ekspert
20. december 2006 - 18:54 #14
But it would be an idea to find out why one of the parameters is empty?
Avatar billede hlnviv Mester
20. december 2006 - 18:57 #15
ved ikke helt hvad du mener why one of the parameters is empty
der skal være muligheder for tomme felter hvis det er det du mener
Avatar billede hlnviv Mester
20. december 2006 - 18:59 #16
but it seams to work  get me and svar for point :o)
Avatar billede terry Ekspert
20. december 2006 - 19:02 #17
I would not have thought that calculated fields would return an empty string, calculations on numbers shouldnt result in an empty string.
But then thats another problem.

You need to change
If Not IsNull(pArray(i)) Then

to
If Len(pArray(i)) > 0 Then
Avatar billede terry Ekspert
20. december 2006 - 19:02 #18
svar 20/12-2006 18:52:11
Avatar billede hlnviv Mester
20. december 2006 - 19:03 #19
jep og tak for hjælpen endnu engang super
Avatar billede terry Ekspert
20. december 2006 - 19:23 #20
selv tak og god aften
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