Avatar billede jthom Nybegynder
30. november 2006 - 09:51 Der er 10 kommentarer og
3 løsninger

Hente data fra en undertabel til hovedtabel

Hej,

jeg har en formular bestående af 8 faneblade som hver er baseret på egen tabel. (Altså 1. faneblad er hovedformularen - de øvrige er sat ind i fanerne som underformularer). Tabellerne er relateret sammen med et unikt kundenummer.

Spørgsmålet er så : er der nogen derved hvordan jeg kan hive/kopiere enkelte felter fra underformularerne om på Fane 1 - det er fordi jeg gerne vil have de vigtigste data om på Fane 1 i oversigtsform.

Kan ikke huske hvordan man gør...
Avatar billede hnteknik Novice
30. november 2006 - 10:28 #1
me.underformular.form.underformularvariabel
Avatar billede hnteknik Novice
30. november 2006 - 10:31 #2
Som eksempel

Me!xadr.Form!LstF.Value
Avatar billede jthom Nybegynder
30. november 2006 - 10:48 #3
hejsa,

ok..

jeg har f.eks en underformular der hedder anlaegstype - er det så Me!anlaegstype.Form!LstF.Value

skal det tastes ind i kontrolelement kilde ? Får nemlig fejl...
Avatar billede Slettet bruger
30. november 2006 - 11:02 #4
I dit tekstfelt på faneblad 1, vælger du egenskaber og kontrolkilde og skriver:

=[Forms]![NavnPåDinHovedformular]![NavnPåDinUnderformular]![NavnPåDitFelt]
Avatar billede jthom Nybegynder
30. november 2006 - 11:14 #5
ok det fungerer næsten. Sætningen lyder nu

=Formularer!Search!Anlaegstype!type_Anlaegstype

har bare lige et lille problem da data i feltet type_Anlaegstype er fra en opslagskollone (baseret på en tabel med et id og så et felt (Felt 1) med navnene på de forskellige anlæg.

Overstående sætning sætter id'et ind - f.eks 3 i stedet for "anlæg 4". Hvordan får jeg den til at snuppe anlæggets navn.

Skal jeg slette id-kolonnen i opslagstabellen ?
Avatar billede hnteknik Novice
30. november 2006 - 11:18 #6
Du mener et rullegardin ?

value giver sikkert værdien såm sikker er kolonne 0. Prøv at hente værdien i kolonne 1 som sikkert er den tekst du vier i rullegardinen.
Avatar billede jthom Nybegynder
30. november 2006 - 11:32 #7
ja et rullegardin som tager data fra en tabel baseret på en tabel med et id (kolonne 1) og så felt 1 (Kolonne 2) med navnene på de forskellige anlæg.

hvordan skrives sætningen så ? Lige nu hedder den =[Formularer]![Search]![Anlaegstype]![type_Anlaegstype]

og den tager dataene fra Kolonne 1, hvor jeg skal have dataene fra kolonne 2...

Nøgle:_

Search er hovedformular
Anlaegstype er underformular
type_Anlaegstype er "Rullegardin" som slår op i en tabel der også hedder Anlaegstype som indeholder de to kolonner..
Avatar billede Slettet bruger
30. november 2006 - 11:36 #8
Egenskaber for rullegardin:
Bundet kolonne: 2 (her starter det nemlig ikke med 0, logisk ikke sandt!~)
Avatar billede jthom Nybegynder
30. november 2006 - 12:55 #9
Hvis jeg definerer bundetkolonne til 2 i rullegardinet på underformularen Anlaegstype så ændres tabellens valg til id altså autonummerede tal..

den stod til kolonne 1 og dropdownfelterne passede fint men i hovedformularen hiver den stadig det autonummerede id-felt over. Så det fungerer ikke rigtigt...

skal have den til at hente data fra kolonne 2 og ikke 1
Avatar billede Slettet bruger
30. november 2006 - 13:01 #10
Så må du lave et skjult felt, som kan indeholde det rigtige. På rullegardinets afterupdate event, går du i visual basic og skriver:
me.NavnSkjultfelt=me.NavnRullegardin.column(1)
og så refererer du til dette felt fra faneblad 1...

Ha' en fortsat god dag, jeg er den, der er smuttet!~)
Avatar billede jthom Nybegynder
30. november 2006 - 13:43 #11
jeg er ikke så velbevandret i Visual Basic - kan jeg sende en eksempel database til nogle ?
Avatar billede fdata Forsker
30. november 2006 - 22:18 #12
Du er nødt til at skrive kode 2 steder:
  I Form_Current() på Search  (så du ser den aktuelle værdi)
og
  I type_Anlaegstype_AfterUpdate hændelsen på Anlaegstype (så du ser evt. ændringer afspejlet på hovedformularen)

På Search:

Private Sub Form_Current()   
  Me.EtFelt = Me.Anlaegstype.Form.type_Anlaegstype.Column(1)
End Sub

... og på underformularen:

Private Sub type_Anlaegstype_AfterUpdate()
  Me.Parent.EtFelt = Me.type_Anlaegstype.Column(1)
End Sub
Avatar billede jthom Nybegynder
01. december 2006 - 09:48 #13
hejsa...

jeg har lavet en lille eksempelbase - er der nogle der kan kigge på den og evt. vise mig hvordan - kan ikke få ovenstående til at virke. Forstår nok ikke det med hændelser o.s.v. suk. Skriv evt. til jt@dandial.dk
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