31. oktober 2004 - 13:50Der er
15 kommentarer og 1 løsning
Udregne "iAlt" felt i en underformular
Jeg har oprettet en ordre formular, hvori jeg har indsat en underformular. De er linket sammen vha. ordre ID og det virker fint. Nu vil jeg på min underformular have udregnet et felt "iAlt" ved at gange "antal" og "pris".
Jeg har oprettet en lille makro hvor jeg har lavet en "Angiv Værdi" der sætter ialt = antal * pris.
Element : [Formularer]![OrdreLinier1]![Pris Ialt] Udtryk : [Formularer]![OrdreLinier1]![Antal]*[Formularer]![[OrdreLinier1]![Salgspris]
Når jeg åbner min underformular virker det fint!, men problemet er at jeg får en fejl når jeg åbner min hoved formular der indeholder underformularen.
Fejlen er: Kan ikke finde formularen "OrderLinier1" der refereres i et makro udtryk..
Virkede ikke - får følgende fejl: Fejl ved reference til object. [Forms]![Ordre2]![OrdreLinier1]![Pris Ialt]; [Forms]![Ordre2]![OrdreLinier1]![Antal]*[Forms]![Ordre2]![OrdreLinier1]![Salgspris]
Prøv at kontrollere, at dit underformular-objektet også hedder "OrdreLinier1". Det er ikke altid tilfældet.
Prøv at åbne hovedformularen i design og klik én gang på underformularen og se i egenskaberne, hvilket navn der står i egenskaben "Navn". Det er dette navn, der skal indsættes.
Uden at ændre på hele din måde at gøre det på, vil jeg foreslå at du laver din underformular baseret på en forespørgsel, der indeholder de samme felter som din nuværende formular (altså samme sammekædning). Så kan du lave beregningen i forespørgslen, og nøjes med at vise resultatet i underformularen.
jkrons->på den måde gemmes værdien ikke i tabellen. Dette er måske heller ikke nødvendigt. Men man skal bare overveje om det er sikkert at gøre det på den måde. Hvis prisen f.eks. ændre sig seneres, skal der jo stadig stå den gamle sum på ordren. Men du har selvfølvfølgelig en pointe, som bør overvejes :o)
Navnet er OrderLinier1 under egenskaber.... så det må være noget andet.
Til jkrons - underformen vises som tabeldata, hvor der kan tilføjes nye "ordre linier" og både antal og pris kan ændres, så jeg tror ikke en forespørgsel kan løse det...
Dennis-> Faktisk anbefaler jeg altid, at man dropper makroerne og går over til VBA i stedet. Der er det meget lettere at gøre, da man (i dette tilfælde) ikke behøver at spekulere på hvad formularene hedder.
Derfra, hvor du kalder din makro, kan du i stedet angive "(Hændelsesprocedure)" og i VBA-editoren skriver du denne sætning:
Me![Pris ialt] = Me!Antal*Me!salgspris
Jkrons->Ja, en tabel med historiske priser løser nogle problemer. Men måske er priserne individuelle fra kunde til kunde og fra gang til gang. Men jeg vil stadig være tilbøjelig til at give dig ret i, at det oftest er den optimale løsning :o) Men det må Dennis næste bedst kunne vurdere.
Nu skal vi ikke indlede en designdebat her :-), men hvis priserne er individuelle fra kunde til kunde og fra salg til salg, selv til samme kunde bør prisen stå i salgstabellen, ikke i varetabellen. Derfor mener jeg stadig at den samlede pris (antal * pris) bør beregnes ved behov, ikke gemmes.
Fint med point til thomasjepsen. Det var jo ham der løste dit problem.
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.