Avatar billede jthom Nybegynder
01. december 2006 - 10:45 Der er 4 kommentarer og
2 løsninger

Problemer med Vizual Basic i Access

Hej - er der nogen til vil kigge på en eksempel access base og lave kodningen for et felt som jeg så kan gå ind og se bagefter.
Jeg har aldrig arbejdet med Visual Basic før så 200 point til den der gider løse problemet...

min email er... jt@dandial.dk

Problemstillingen er : (Gammelt spørgsmål - hvor jeg til sidst har kastet håndkædet i ringen ;o)))

Hente data fra en undertabel til hovedtabel  100 point fra jthom 



X 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...
Kommentar: hnteknik
30/11-2006 10:28:23 me.underformular.form.underformularvariabel
Accepteret svar: hnteknik
30/11-2006 10:31:17
Point: 34,00 Som eksempel

Me!xadr.Form!LstF.Value
Kommentar: jthom
30/11-2006 10:48:24 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...
Accepteret svar: spg
30/11-2006 11:02:59
Point: 33,00 I dit tekstfelt på faneblad 1, vælger du egenskaber og kontrolkilde og skriver:

=[Forms]![NavnPåDinHovedformular]![NavnPåDinUnderformular]![NavnPåDitFelt]
Kommentar: jthom
30/11-2006 11:14:02 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 ?
Kommentar: hnteknik
30/11-2006 11:18:54 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.
Kommentar: jthom
30/11-2006 11:32:49 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..
Kommentar: spg
30/11-2006 11:36:21 Egenskaber for rullegardin:
Bundet kolonne: 2 (her starter det nemlig ikke med 0, logisk ikke sandt!~)
Kommentar: jthom
30/11-2006 12:55:10 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
Kommentar: spg
30/11-2006 13:01:30 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!~)
Kommentar: jthom
30/11-2006 13:43:41 jeg er ikke så velbevandret i Visual Basic - kan jeg sende en eksempel database til nogle ?
Accepteret svar: fdata
30/11-2006 22:18:34
Point: 33,00 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
Kommentar: jthom
01/12-2006 09:48:17 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 supertekst Ekspert
01. december 2006 - 10:55 #1
Du må gerne sende din eksempel-db til: pb@supertekst-it.dk - så kan jeg da gøre et forsøg.
Avatar billede Slettet bruger
01. december 2006 - 13:12 #2
eller send zippet til spgeertz på hotmail!~)
Avatar billede Slettet bruger
01. december 2006 - 13:19 #3
Jeg har lige sendt dig et eksempel!~)
Avatar billede Slettet bruger
01. december 2006 - 13:30 #4
Efter 3 eksempler er det gået op for mig, hvad der er galt...

Column count har stået på 1, den skal stå på 2..

og column width skal så stå på 0 cm; 3 cm (3 eller hvor bred kombiboksen nu er)

og så virker Bundet kolonne: 2
Avatar billede hermanlaksko Nybegynder
01. december 2006 - 13:42 #5
=Forms!Hovedformular!Formular1!type_Anlaegstype.column(1)
Løser problemet i eksempel basen.
Avatar billede hermanlaksko Nybegynder
01. december 2006 - 13:45 #6
=[Forms]![Hovedformular]![Formular1].[Form]![type_Anlaegstype].[column](1)
Er nok den korrekte løsning
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