20. oktober 2004 - 21:45Der 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
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.
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.
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.
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!
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.
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)
Jeg er kørt helt fast: Jeg nedlægger og opretter et nyt
Synes godt om
Ny brugerNybegynder
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.