Avatar billede dennispc Nybegynder
31. oktober 2004 - 13:50 Der 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..
31. oktober 2004 - 13:53 #1
Prøv med:

Forms![DinHovedformular]![OrdreLinier1]![Pris Ialt]

osv
Avatar billede dennispc Nybegynder
31. oktober 2004 - 14:20 #2
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]
31. oktober 2004 - 14:30 #3
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.
Avatar billede jkrons Professor
31. oktober 2004 - 14:32 #4
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.
31. oktober 2004 - 14:37 #5
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)
Avatar billede dennispc Nybegynder
31. oktober 2004 - 14:38 #6
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...
Avatar billede jkrons Professor
31. oktober 2004 - 14:41 #7
thomasjepsen-> Tal, der kan beregnes, bør vel ikke gemmes i tabellen? I stedet bør man vel så have en tabel til historiske priser.

dennispc-> Dyu kan godt tilføje poster i din underformular og rette i antal og pris, selv om den er baseret på en forespørgsel.
31. oktober 2004 - 14:47 #8
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.
Avatar billede jkrons Professor
31. oktober 2004 - 14:51 #9
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.
Avatar billede dennispc Nybegynder
31. oktober 2004 - 14:56 #10
det virker med VBA koden :-)

Jeg koder i flere andre sprog c++,Java, C/Al , men har ikke leget med Access før....

Hvad referere du til med ME!  ?? Kan jeg slå variabler mv. op i editoren ?
31. oktober 2004 - 14:59 #11
Me referere kun til den formular, hvorfra koden kaldes.

Variabler, feltnavn, metoder m.m. kan du slå op ved at påbegynde navnet og trykke Ctrl+Space
31. oktober 2004 - 14:59 #12
Jkrons-> du har helt ret! Jeg giver dig stadig ret :o)
Avatar billede dennispc Nybegynder
31. oktober 2004 - 15:04 #13
Jeg siger mange tak for hjælpen ! vil mene at point skal gå til thomasjepsen - enig ?
Men også tak til jkrons for design-debatten :-)

en sidste lille ting - er det ikke muligt at tilføje flere felter fra tabeller til en eksisterende formular åbnet i design visning ? Bruger Access2003
31. oktober 2004 - 15:07 #14
jo da! Du kan trække felterne fra felt-listen, som du finder i menuen Vis

Eller du kan trække en tom tekstboks over på formularen og ændre den kontrolelementkilde til at pege på det ønskede felt.

Du dog ikke umiddelbart tilføje felter fra andre tabeller, end dem som er med i formularens postkilde (forespørgsel eller tabel)
31. oktober 2004 - 15:11 #15
takker :o)
Avatar billede jkrons Professor
31. oktober 2004 - 15:20 #16
Fint med point til thomasjepsen. Det var jo ham der løste dit problem.
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