Avatar billede overchord Nybegynder
27. januar 2004 - 15:38 Der er 12 kommentarer og
2 løsninger

Overflow paa en double i funktionskald

Hejsa

I nedenstaaende funktion faar jeg overflow som om funtionen er defineret som en integer, hvilket den jo ikke er! Hvad gaar der galt?

Public Function AreaCalc(Sampler As String, PCount As Long) As Double
Dim Diameter As Double
Dim Efficiency As Double

Diameter = DLookup("[Diameter]", "TblSamplers", "[Sampler] = '" & Sampler & "'")
Efficiency = DLookup("[efficiency]", "TblSamplers", "[Sampler] = '" & Sampler & "'")


AreaCalc = PCount / ((3.1415926535 * (Diameter / 2) ^ 2) * Efficiency)

End Function
Avatar billede juks Novice
27. januar 2004 - 15:42 #1
3.1415926535  , burde det ikke værer  3,1415926535 ??
hvor går det galt henne i rutinen
Avatar billede overchord Nybegynder
27. januar 2004 - 15:46 #2
mht komma-fejl Nej jeg bruger engelsk version.
Det gaar galt inden jeg overhoved kommer ind. Har lagt breakpoint ved deklareringen af Diameter, men faar overflow inden naar jeg kalder AreaCalc("BG200", 32768)

BG200 er et opslag i en tabel ovr diameter og effektivitet
Avatar billede juks Novice
27. januar 2004 - 15:49 #3
er du sikke på at de er defineret som tal i tabellen
Avatar billede overchord Nybegynder
27. januar 2004 - 15:52 #4
Jeps - har lige dobbelt-checket. Begge er defineret som Double i tabellen.
Men det virker som om problemet ligger i PCount. Kaldet fungerer fint for PCount < 32768. Den var oprindeligt sat som integer, men blev aendret til Long for at kunne haandtere stoerre vaerdier.
27. januar 2004 - 15:58 #5
prøv at fjerne sidste linie (AreaCalc = ....) og se om du stadig får fejlen.

prøv evt at dele udtrykket op i mindre bider.
Dim A as double
A = (3.1415926535 * (Diameter / 2) ^ 2)
AreaCalc = PCount/(A*Efficiency)
Avatar billede juks Novice
27. januar 2004 - 15:59 #6
det lyder som om den et eller andet sted stadig er defineret som Int.
begrundet på din bemærkning (Kaldet fungerer fint for PCount < 32768.)
Avatar billede overchord Nybegynder
27. januar 2004 - 16:00 #7
ok.....nu er jeg forvirret!! Det virker igen. Kopierede hele modulet som koden laa i under nyt navn, slettede det gamle og omdoebte. Genstartede Access- og nu virker det.... Det lader til at funktionen ikke blev opdateret loebende.
Avatar billede juks Novice
27. januar 2004 - 16:01 #8
tror du har declaret en public tidligere som INT
Avatar billede juks Novice
27. januar 2004 - 16:01 #9
nå men bare det virker.  så lad være med at pille mere ved det :-)
Avatar billede overchord Nybegynder
27. januar 2004 - 16:06 #10
juks -> Ja Pcount var tidl deklareret som int, hvilket maa have vaert problemet.
Bare rolig jeg holder nallerne fra den nu :-D
Tak for hjaelpen - hvis i vil have point saa laeg svar.
Avatar billede juks Novice
27. januar 2004 - 16:08 #11
svar
27. januar 2004 - 16:40 #12
Det er desværre livets barske realiteter, når man arbejder med Access. Af og til står den bare af, og så må den lige have et service-eftersyn :o(
Avatar billede overchord Nybegynder
27. januar 2004 - 16:52 #13
Jeps og jo stoerre en db bliver jo flere omraader lader det til at skulle udfoeres i!
Haaber pointfordelingen er ok
27. januar 2004 - 18:04 #14
sure, thnx :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