Avatar billede 49jensen Nybegynder
20. februar 2013 - 18:09 Der er 15 kommentarer og
1 løsning

Kan jeg kopiere en feltværdi fra underformular til hovedformular med vba

I en hovedformular har jeg et felt "Number" som henter relaterede data i TblA. Desuden har jeg en underformular hvor TblA er postkilde. Feltet "Number" findes også i underformularen.
Spørgsmålet er, kan jeg ved at markere en værdi i feltet "Number" i underformularen overføre denne værdi til hovedformularens felt "Number" og derved hente de relaterede felter til hovedformularen.
Avatar billede terry Ekspert
20. februar 2013 - 18:50 #1
at sounds like a lot of back and forth.

Normally a sub form contains one or more records which are related to the record in teh main form.
Why woul dyou want to copy data from the selected sub form record into the main form?

That would mean each time you select a record in the sub form you copy data to the main form and overwrite the previous data.

Maybe you should explain in more detail. With an example maybe.
Avatar billede fdata Forsker
20. februar 2013 - 19:28 #2
I underformularens Number felt kan du i AfterUpdate/EfterOpdatering lægge:
  Me.Parent.Number=Me.Number
(Hvis du kører kode i hovedformularens Number felt, skal denne nok også fyres af, når underformularens Number opdateres)
Avatar billede 49jensen Nybegynder
20. februar 2013 - 20:01 #3
I hovedformularens felt "Number" skal indtastes en værdi f.eks. AMTS110000 eller AMTS11oo0345 o.s.v. hver værdi henter de relaterede data i tabellen. Grunden til at jeg har oprettet en underformular er at man ikke i hovedet kan huske numrene og det sæt data der er i posten. I underformularen kan jeg se "AMTSNumber" + et felt, som fortæller mig, hvad posten indeholder.
Det er meningen, at hver gang jeg åbner hovedformularen, skal jeg indtaste "AMTSNumber" for at hente posten med det specifikke "AMTSNumber" og gemme nye oplysninger i posten.
Oplysningerne bliver gemt i TblB som er relateret til TblA.

Svaret Fdata forstod jeg ikke rigtig.
Avatar billede 49jensen Nybegynder
20. februar 2013 - 20:45 #4
Lige en tilføjelse
Hovedformularens postkilde er en Qry hvor TblA og TblB Indgår. De to tabeller er relateret igennem feltet "Number"
Avatar billede 49jensen Nybegynder
21. februar 2013 - 10:35 #5
Jeg har prøvet at lægge den kode som fdata foreslog ind i underformularens felt "Number" (after update) men det virker ikke.
Avatar billede Slettet bruger
21. februar 2013 - 13:24 #6
Sidder og får en fornemmelse af at her gøres noget lidt bagvendt. Det udelukke selvfølgeligt ikke at det kan lade sig gøre - men her er blot min mening om den oplagte måde 

TblB i underformular til Formular baseret på TblA, linket over Number 
En ubundet kombinationsboks på hovedformular, hvor første kolonne er Number med en afterupdate event der udfører filtrering på hovedformular:

Filter = "Number=" & <KombinationsboksName>
FilterOn = True
Avatar billede 49jensen Nybegynder
21. februar 2013 - 13:53 #7
Det er en mulighed som jeg har overvejet, men er gået bort fra den. Grunden er at jeg i kombinationsboksen skal have vist Number og en beskrivelse af hvad postsættet med det pågældende Number dækker, og det giver en stor og akavet kombinationsboks som dette

  Number    Beskrivelse
  1        4 spande maling - en rød, en grøn, en sort, en blå
  2        4 spande maling - en rød, en grøn, en sort, en hvid

Feltet beskrivelse i kobinationsboksen ville blive meget stort.
Avatar billede Slettet bruger
21. februar 2013 - 15:30 #8
For at udtrykke det med andre ord - ønsker du at gå til den post i hovedformularen hvis datakildes felt med navnet Number har samme værdi som Number i valgte post i underformularen?

Det fordrer at Number er Unique i Qry - at opdeling i TblA og TblB, set udfra problematikken her, ikke er nødvendig da TblB blot er en 'udvidelse af TblA med felter'
(du kan have grunde vi ikke kender)

Omvendt, hvis en post i TblA virkelig refererer flere poster i TblB over Number, som dermed ikke er Unique i Qry, fordrer positionering til en post i Qry's formular udpeget af en post i TblB, at der anvendes så mange felter at udpegningen bliver unique
Avatar billede 49jensen Nybegynder
21. februar 2013 - 16:16 #9
Til det første "ja"
Feltet "Number" er unikt.
Jeg prøver lige at forklare engang til.
TblA. Et sæt poster for hver med sit "Number"."Number" er unikt.
TblB. Felter hvor der kan indtastes oplysning + "Number"
QryQ har felter fra TblA og TblB.
FrmF har QryQ som postkilde.
Når jeg indtaster et tal i TblB "Number" hentes de relaterede felter fra TblB.
Problemet er, at jeg ikke kan huske hvilken beskrivelse de enkelte tal som indtastes i felter "Number" henviser til.
Jeg kunne gøre det manuelt på følgende måde.
  1.Markere feltet i underformularen.
  2.Kopiere feltet.
  3.Indsæt det i hovedformularens felt "Number" og trykke enter.
Men det er en lidt akavet måde, hvis man ved at markere feltet i underformulen kan gøre det samme.
Avatar billede Slettet bruger
21. februar 2013 - 18:33 #10
Jeg forstår desværre ikke hvad du mener med at indtaste et tal 'i en tabel' hvorved der hentes relaterede felter - ikke kun i #9, men også i #1 og #3.
Jeg kender desværre ikke til sådan en 'hop til det jeg skriver i en tekstbox' formular type ellers også har jeg helt glemt det.
Nuvel - du har uddybet en del og vi må håbe at andre kan hjælpe.
Avatar billede 49jensen Nybegynder
21. februar 2013 - 21:02 #11
Jeg kan godt se at mit indlæg #9 virker noget forvirende, så jeg prøver en sidste gang.
Ref. til indlæg #8.
Til det første "ja"
Feltet "Number" er unikt.
Jeg prøver lige at forklare engang til.
TblA. Indeholder en række felter med oplysninger +  feltet"Number". "Number" er unikt.
TblB. Indeholder en række felter hvor der kan indtastes oplysning + feltet "Number"
TblA og TblB i QryQ er relateret gennem felterne "Number"
FrmF har QryQ som postkilde.
Når jeg indtaster et tal i FrmF felt "Number" (QryQ TblB "Number") hentes de relaterede felter til FrmF fra QryQ TblA.
Problemet er, at det er svært huske hvilken beskrivelse de enkelte tal som indtastes i felter "Number" henviser til.
Jeg kunne gøre det med musen på følgende måde.
  1.Markere feltet "Number" i den pågældende post i underformularen.
  2.Kopiere feltværdien. 
  3.Indsæt feltvædien i hovedformularens felt "Number". 
  4. Jeg kunne også indtaste værdien fra felt "Number" direkte i hovedformularens felt "Number", men det giver mulighed for fejlindtastning.
Det bedste løsning ville være, hvis man kunne markere en "Number" værdi i underformulen.
Håber virkelig at jeg nu har givet en ordentlig forklaring.
Avatar billede Slettet bruger
22. februar 2013 - 12:25 #12
I sin enkleste form
http://kisserup-strand.dk/downloads/navBySubf.zip

men skift til dataark for hovedformular,gennem højklik i titellinie,  ville tilbyde set samme.

Nu må du ikke gentage din forklaring flere gange ;)
Avatar billede 49jensen Nybegynder
22. februar 2013 - 16:01 #13
Hvorfor skulle jeg ønske at vise min hovedformular i dataark?
Man har vel en formular for at gøre indtastninger lettere.
Linket siger mig intet udover at der er 2 tabeller.
Jeg er ked af hvis mit indlæg og mine besvarelser har haft en irriterende virkning på nogle brugere, hvilket absolut ikke har været hensigten.
Jeg stillede et spørgsmål og gav nogle besvarelser på modspørgsmål så godt jeg kunne, men det kan jo være at der ikke var point nok. Jeg giver da gerne flere point, men tidligere har brugere givet udtryk for at pointtildelingen skulle sættes i relation spørgsmålets sværhed, og det kan jeg ikke bedømme.
Jeg er ikke ekspert i access. Det er jo netop derfor at jeg er i dette forum. Hvis alle var eksperter ville der ikke være behov for "Eksperten"
Avatar billede fdata Forsker
23. februar 2013 - 14:47 #14
Jeg blander mig lige igen og vender tilbage til dit oprindeligt spørgsmål. Jeg kan se, at jeg manglede en detalje.
  Me.Parent.Number=Me.Number
skal ganske rigtigt ligge ligge i underformularens Number felts AfterUpdate/EfterOpdatering; MEN den skal også ligge i OnCurrent/VedAktuel, eller udføres den jo kun, når du retter Number og ikke hvis du bare skifter post.
Avatar billede 49jensen Nybegynder
23. februar 2013 - 18:04 #15
Jeg har lagt koden "Me.Parent.Number=Me.Number" i "AfterUpdate" og og "VedKlik" i underformularens Number felt.
Det virker som nøjagtigt som jeg ønskede.
Tusind tak for din tålmodighed og point til dig.
Avatar billede fdata Forsker
24. februar 2013 - 13:35 #16
Ja, der var jo nok lidt for mange vejbump undervejs ;o)
Det vigtigste er at du nåede frem til det ønskede resultat.
Takker for point.
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