Avatar billede gp Nybegynder
20. oktober 2004 - 21:45 Der er 10 kommentarer og
1 løsning

Beregne fra formel felt

I min db har jeg et felt hvor i jeg har indtastet den beregnings formel jeg vil bruge på min varelinie, alle formler er forskellige. Hvordan kan jeg beregne forbruget individualt på hver vare linie når jeg ændre min værdier i formelen, jeg har startet med en beregningsknap, men der bliver ikke bereget noget?

Hvad gør jeg galt??

Option Compare Database
Public A, B, C, D As Double, FormelB As String

Public Function beregning(Aa, Bb, Cc, Dd, Ee, Ff, Gg, Hh, Ii, Jj)
A = Aa / 1000  'Hus brede
B = Bb / 1000  'Hus længde
C = Cc / 1000  'Ydervæg højde
D = Dd / 1000  'Fundament dybte
E = Ee / 1000  'Højde til Kip ydervæg
F = Ff / 1000  'Udhæng
G = Gg / 1000  'Brede tag
H = Hh / 1000  'Længde tag
I = Ii          'Tag hældning
J = Jj / 1000  'Fundament over terrent
D = (A * B) * C

FormelB = DLookup("Formel", "tblVareGrupper", "VareGrupper =" & Forms![frmHusData]![Customers By Country].Form![subItems].Form![VareGrupper])

'D = FormelB '(B * C * 2) + (A * C * 2)
'MsgBox "= " & FormelB
Forms!frmHusData.HER.ControlSource = "= " & FormelB  'BEREGNNGEN VIRKER GODT PÅ MIT MAIN FORMULAR


Forms![frmHusData]![Customers By Country].Form![subItems].Form![Forbrug].ControlSource = "= " & FormelB
End Function

Public Function FormelBeregning()

Dim FormelK As String

Dim sqlCount As String
sqlCount = Nz(DCount("LinieNo", "tblVareForbrug"), 0)

Do While (sqlCount > 0)

FormelB = DLookup("Formel", "tblVareGrupper", "VareGrupper =" & Forms![frmHusData]![Customers By Country].Form![subItems].Form![VareGrupper])

Forms![frmHusData]![Customers By Country].Form![subItems]![Forbrug].ControlSource = "= " & FormelB

sqlCount = sqlCount - 1
Loop

End Function
Avatar billede mugs Novice
20. oktober 2004 - 21:49 #1
Er der nogle af dine felter, der indgår i beregningen der er tomme (Null)?
Avatar billede gp Nybegynder
20. oktober 2004 - 21:54 #2
Ja, jeg arbejder kun med 2 vare linier iøjeblikket, en med formel og en uden. Det kan godt være vare hvor forbruget ikke kan udregnes efter en formel med skal tastes manuelt.
Avatar billede mugs Novice
20. oktober 2004 - 22:01 #3
Hvis eet eller flere felter, der indgår i en beregning, er Null (tom streng), kan Access ikke regne. Du er nødt til at benytte funktionen Nz overalt i db og returnere 0 hvis feltet er Null.
Avatar billede gp Nybegynder
20. oktober 2004 - 22:08 #4
Alle mine værdier er 1 eller mere.

I min db har jeg tastet formlen ind i et felt, det felt bruges så som ControlSource i mit forbrugs felt, som jeg ser det løber jeg min form igennem for at beregne forbruget, det vil jeg så sætte den til afterupdate, men det ser ud til at den bruger den samme formel alle steder og sætter "#Navn?" på min forbrugs felt på formen istedet på alle poster.
Avatar billede mugs Novice
20. oktober 2004 - 22:12 #5
Kl 21:54:00 svarer du ja til, at nogle af dine felter er null (Tomme).

Kl 22:08:08 skriver du, at de alle er =>1!

??
Avatar billede gp Nybegynder
20. oktober 2004 - 22:13 #6
Kan fejlen være i min Dlookup funtion, her kan jeg se at den ikke kigger efter formlen på den post hvor den skal beregne men kun fra den aktuelle post!
Avatar billede gp Nybegynder
20. oktober 2004 - 22:15 #7
Mine værdier A, B, C, har alle tal =>1 , feltet formel kan godt være tomt...
Avatar billede gp Nybegynder
20. oktober 2004 - 22:21 #8
Forms![frmHusData]![Customers By Country].Form![subItems]![Forbrug].ControlSource = "= " & FormelB

Det er den rigtige vej til [Forbrug].ControlSource på SUB2 fra et mondul?
Avatar billede mugs Novice
21. oktober 2004 - 05:35 #9
Som et led i din fejlfinding, kan du i slutningen af koden, prøve at udskrive dine variabler til fejlfindingsvinduet. Start fejlfindingsvinduet View > Immediate og skriv nederst i koden Debug.print FormelB.
Kør koden og åbn VBA-editoren og check om immediate indeholder den korrekte værdi.
Avatar billede gp Nybegynder
21. oktober 2004 - 07:31 #10
Jeg er kommet frem til at min fejl ligger i:

FormelB = Nz(DLookup("Formel", "tblVareGrupper", "VareGrupper =" & Forms![frmHusData]![Customers By Country].Form![subItems].Form![VareGrupper]), 0)

Den tager værdien fra den post som er i fokus og ikke som tænkt den post som den er nået til ved look funktionen, hvordan retter jeg det. Og hvorfor sætter den "#Navn?"
i feltet beregn.

Kan jeg istedet beregne formel i VBA og så sætte værdien:
me.forbrug = FormelB ( Den skal skrive værdien ikke formelen)
Avatar billede gp Nybegynder
21. oktober 2004 - 21:01 #11
Jeg er kørt helt fast:
Jeg nedlægger og opretter et nyt
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