Avatar billede joggeren Nybegynder
11. oktober 2004 - 15:28 Der er 33 kommentarer og
1 løsning

Fange værdi fra underformular

Jeg skal bruge en værdi der står i feltet i en underformular "underpoordre" og feltet "Tekst0" til en udregning i selve formularen.

Hvordan får jeg den til "fange" den?
Avatar billede mugs Novice
11. oktober 2004 - 15:36 #1
Du skal referere til underformularen først:

Me.Underformular!feltnavn
Avatar billede overchord Nybegynder
11. oktober 2004 - 15:37 #2
Proev med:

= [Forms]![underpoodre]![Tekst0]
Avatar billede joggeren Nybegynder
11. oktober 2004 - 15:41 #3
Overchord.. virker ikke.. det samme som jeg havde forsøgt..

mugs.. jeg ved at man nok skal bruge "me".. men hvordan skal koden konkret se ud?
Avatar billede madschristensen Nybegynder
11. oktober 2004 - 15:48 #4
MsgBox ([underpoordre].Form![Tekst0])
Avatar billede madschristensen Nybegynder
11. oktober 2004 - 15:50 #5
=([underpoordre].Form![Tekst0])

(Msgbox var bare til test...) ;O)))
Avatar billede joggeren Nybegynder
11. oktober 2004 - 15:52 #6
virker ikke.. madschristensen... har rodet med noget lignende før.. og der mener jeg man skal brug Me..

Det er Office 97.
Avatar billede mugs Novice
11. oktober 2004 - 15:53 #7
Me.underproordre!Tekst0

Afhængig af hvordan du skal bruge værdien, skal du jo indsætte den enten i en variabel:

Dim a As String
a = Me.underproordre!Tekst0

eller et felt:

Me.felt1 = Me.underproordre!Tekst0

Og så ændre String til en numerisk variabel med den rette størrelse.
Avatar billede joggeren Nybegynder
11. oktober 2004 - 15:57 #8
Jeg vil indsætte den i en tekstboks.
Den første linie du skriver virker ikke... resten forstår jeg ikke så meget af.

Vender tilbage i morgen tidlig.
Avatar billede madschristensen Nybegynder
11. oktober 2004 - 15:57 #9
NOTE: In Microsoft Access 7.0 and 97, the "Form" or "Report" identifier is optional when referring to control properties. It is necessary, however, when referring to subform or subreport properties.

To refer to a control on a subform, use the following syntax:
  Forms![main form name]![subform control name].Form![control name]
Avatar billede madschristensen Nybegynder
11. oktober 2004 - 15:59 #10
Altså:
=Forms![navnet på hovedformular]![underpoordre].Form![tekst0]
Avatar billede mugs Novice
11. oktober 2004 - 16:00 #11
Me er ikke strengt nødvendigt, det refererer til den aktuelle formular i stedet for at skrive [Forms]![formular1]![felt1)
Avatar billede joggeren Nybegynder
11. oktober 2004 - 16:01 #12
Altså: =[Forms]![ordre]![underpoordre].[Form]![tekst0]



Virker ikke madschristensen.. i øvrigt ligger underformularen i formularfoden.
Avatar billede mugs Novice
11. oktober 2004 - 16:04 #13
Har du prøvet min kode? Den er afprøvet og fungerer, og så går jeg ud og slår græs!
Avatar billede mugs Novice
11. oktober 2004 - 16:06 #14
Har afprøvet min kode med underformularen liggende i formularfoden. Ingen forskel - Virker perfekt.
Avatar billede madschristensen Nybegynder
11. oktober 2004 - 16:08 #15
Skulle du ikke slå græs??? ;O)))

Nu går jeg hjem ihvertfald. Min kode er også teste og virker - dog på OfficeXP.

Kan i ha' fortsat god dag allesammen.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 08:16 #16
Hmm.. prøvede lige denne igen: =Forms![navnet på hovedformular]![underpoordre].Form![tekst0]

og den virkede.. værdien kommer dog først frem når jeg aktiverer feltet...
Avatar billede mugs Novice
12. oktober 2004 - 08:21 #17
Hvor har du indsat koden?
Avatar billede joggeren Nybegynder
12. oktober 2004 - 08:24 #18
i en tekstboks ved kontrolelementkilde
Avatar billede mugs Novice
12. oktober 2004 - 08:29 #19
Hvis tekstboksen aktid skal indeholde værdien fra underformularen, kan du i hovedformularens VedAktuel hændelse indsætte flg.:

Me.felt1 = Me.underproordre!Tekst0

Hvor felt1 er feltet i hovedformularen, der skal modtage værdien.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 08:36 #20
Ved: Me.tekst65 = Me.underpoordre!Tekst0

Skriver den at den ikke kan finde makroen "Me"

Jeg bruger denne kode til at få værdien: =[Forms]![ordre]![underpoordre].[Form]![tekst0]
Avatar billede mugs Novice
12. oktober 2004 - 08:40 #21
Private Sub Form_Current()
Me.tekst65 = Me.underpoordre!Tekst0
End Sub

fungerer perfekt her.

Du skal ikke have nogen postkilde i tekst65 og heller ikke noget stående i feltets hændelsesprocedürer.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 08:47 #22
virker.... hvad gør jeg så hvis den skal tage mere end det ene felt?

Hvordan udvider jeg koden til det?

Den skal medtage

Me.tekst69 = Me.poordre!Forbrug
Me.tekst71 = Me.poordre!Tekst61
Avatar billede mugs Novice
12. oktober 2004 - 08:50 #23
Rart det endelig fungerer. Du udvider blot koden således:

Private Sub Form_Current()
Me.tekst65 = Me.underpoordre!Tekst0
Me.tekst69 = Me.poordre!Forbrug
Me.tekst71 = Me.poordre!Tekst61
End Sub
Avatar billede joggeren Nybegynder
12. oktober 2004 - 08:54 #24
så virker det... et sidste spørgsmål.... hvor skal jeg yderligere indsætte denne kode.. hvis den skal opdatere felterne hvis der bliver ændret i værdierne i underformularerne?
Avatar billede mugs Novice
12. oktober 2004 - 09:00 #25
I hvert felt i underformularen i BeforeUpdate. Men nu skal du "vende" koden, idet du jo nu arbejder i underformularen:

Private Sub Tekst0_BeforeUpdate(Cancel As Integer)
Me.Parent!tekst65 = Me.Tekst0
End Sub

Når du ændrer værdien i underformularens tekst0 og flytter markøren, vil hovedformularen blive opdateret. Ret feltnavnene og indsæt koden i de andre felter i underformularen.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 09:03 #26
tak... mangler lige et svar fra madschristensen... da jeg også synes han fortjener lidt point.
Avatar billede mugs Novice
12. oktober 2004 - 09:05 #27
Det gør han da ;o)
Avatar billede joggeren Nybegynder
12. oktober 2004 - 09:07 #28
ehm... har måske lige et spørgsmål mere.. evt. kan jeg oprette et nyt spørgsmål til det... mene hvordan skal denne kode se ud, hvis jeg ligge den ind i en underformular og skal hente værdien fra en anden underformuar.

Private Sub Form_Current()
Me.Tekst65 = Me.underpoordre!Tekst0
Me.Tekst69 = Me.poordre!Forbrug
Me.Tekst71 = Me.poordre!Tekst61
End Sub
Avatar billede mugs Novice
12. oktober 2004 - 09:15 #29
Så tror jeg du skal referere til objektsamlingen først.

Me.feltnavn = [Forms]![FORMULARNAVN]![FELTNAVN]

Men jeg har ikke afprøvet dette.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 09:25 #30
Mht.

Private Sub Tekst0_BeforeUpdate(Cancel As Integer)
Me.Parent!tekst65 = Me.Tekst0
End Sub

Så virker det ikke helt...

ved ændring af værdi i feltet.. skal den opdatere felt65 i hovedformularen til den værdi der er i den pågældende underformularen felt "tekst0"

Feltet der bliver ændret i og "tekst0" er i samme underformular.
Avatar billede mugs Novice
12. oktober 2004 - 09:31 #31
Det skal fungere. Men du skriver:

Feltet der bliver ændret i og "tekst0" er i samme underformular

Modtager tekst65 værdien fra tekst0? I så fald fungerer det jo. Men hvis du ændrer i et andet felt i underformularen, skal tekst0 jo sættes = dette felt.
Avatar billede madschristensen Nybegynder
12. oktober 2004 - 09:34 #32
Alle point til Mugs - jeg slog jo bare op i dokumentationen ;O))

--- han skulle jo også slå græs - alene det er point værd ;O)))
Avatar billede joggeren Nybegynder
12. oktober 2004 - 09:35 #33
ja.. har fået det til at virke.
Avatar billede joggeren Nybegynder
12. oktober 2004 - 09:39 #34
tak for god indsats.... jeg støder nok på flere problemer senere på dagen...
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