Jeg har en hoved formular kaldet "main" med en indbygget sub/under formular.
Hovedformularen "main" har to knapper på. Knappernes funktion er, at når man trykker på hhv. den ene eller den anden, så ændres under formularens "source object". Underformularen linker således til to forskellige formularer, alt efter hvilken knap man har trykket på. De to formularer som der kan linkes til har jeg kaldet "subMain1" og "subMain2".
"Submain1" indholder en listbox kaldet "lstbox1", som viser data fra en af mine tabeller. "Submain2" indeholder ligeledes en listbox kaldet "lstbox2", som viser data fra en af mine tabeller, men indholdet er baseret på hvilke data jeg har valgt i i "lstbox1". Eller sådan burde det i hvert fald være.
Problemet er at når jeg skifter imellem de to underformularer, så sletter den markeringen af de data, som jeg i første omgang har valgt.
Eksempel:
1. Jeg åbner hovedformularen "main", og den indlæser automatisk underformularen "subMain1". Alt er som det skal være.
2. Jeg markerer nu en række i "lstbox1".
3. Jeg klikker nu på knappen, der skifter underformularen til "subMain2", og forventer at se data i "lstbox2", som er baseret på de valgte data i "lstbox1", men "lstbox2" er til min overraskelse tom.
4. Jeg trykker nu på knapper der skifter til "subMain1", og kan se, at der ikke er markeret nogle data i "lstbox1".
5. Jeg tænker at programmet, da jeg skiftede til underformular "subMain2", har slettet markeringen i "lstbox1" og derfor er "lstbox2" tom.
Men hvad er der galt? og hvordan får jeg det til at virker.
PS. Jeg har testet det, hvor "subMain1" og "subMain2" ikke var underformularer til hovedformularen "main". Altså som to uafhængige formularer, og jeg kan få delen med at baseret data i "lstbox2" på de valgte data i ""lstbox1", til at virke. Det er kun når jeg skifter imellem dem som underformularer, via knappet på hovedformularen "main", at det går galt.
After a very quick read through your question, I dont really understand how you can expect to see data in one listbox, based on a selection in another listbox which no longer exists!
Når du skifter Source Object lukker du rent faktisk den ene subform og åbner den anden. Den, du lukkede, er dermed udefineret, så du kan ikke referere til den. Når du skifter tilbage til subMain1 er listen tom, for nu er subformen indlæst påny og uvidende om hvad du foretog dig sidste gang, du åbnede den.
I stedet for at skifte Source Object kunne du jo lægge begge subforms på din hovedform og så skiftevis slå Form.Visible til og fra på dem. Så er de begge åbne samtidig (dog ikke vist samtidig) og du kan frit referere til dem begge.
Som terry skriver: Lidt mere info, please; men du har nok brug for et eller andet i denne stil:
Opret et ubundet felt (her: DitFelt) på din hovedform. Benyt DitFelt som link-felt til Submain2. På Submain1 lægger du i lstbox1.AfterUpdate : Me.Parent.DitFelt=<DetValgte>
Jeg har omdøbt de forskellige formularer en smule for at det forhåbentlig giver bedre mening.
Nedenfor følger en forklaring af de forskellige formularer og underformularer.
Note: "frm" står for formular og "sFrm" står for underformular (som i subForm).
- frm_main: Hovedformular
- frm_Submain: Almindelig formular der bliver vist i underformular "sFrm_Submain". ha. egenskaben "source object". Den indeholder listboksen "lstbox1".
- frm_kabler: Almindelig formular der bliver vist i underformular "sFrm_kabler" vha. egenskaben "source object". Den indeholder listboksen "lstbox2".
- sFrm_main: Underformular placeret på hovedformularen "frm_main".
- sFrm_Kabler: Underformular placeret på hovedformularen "frm_kabler".
Så jeg fulgte jeres råd og lagde de to underformularer "sFrm_Submain" og "sFrm_Kabler" på hovedformularen "frm_main". Jeg kan nu skifte imellem dem vha. en knap på hovedformularen ved at gøre dem skiftevis synlige eller usynlige.
De to listbokse "lstbox1" og "lstbox2" viser data fra to forskellige tabeller, som jeg her kalder "tabel1" og "tabel2". Data i "tabel2" er relateret til dataene i "tabel1" i en en-mange relation.
Jeg vil gerne have "listbox2", som er vist i underformular "sFrm_kabler", til at vise data baseret på de data brugeren har valgt i "lstbox1", som er vist i underformular "sFrm_subMain", men det er som om den ikke opdaterer underformularen "sFrm_kabler" ordentlig. Dog sker der alligevel et eller andet, fordi når jeg markerer data i "lstbox1", og herefter åbner den almindelige formular "frm_kabler", så er den opdateret og dataene er vist rigtigt i "lstbox1".
Jeg ved ikke hvorfor den ikke opdaterer underformularen "sFrm_kabler" og det er det jeg håber i kan hjælpe med at svare på?
Jeg håber at jeg har gjort mig forståelig, selvom indlægget blev lidt langt. Ellers prøver jeg gerne igen, hvis i er i tvivl om noget. Jeg kan desværre ikke sende den rigtige fil til jer, da arbejdet ikke tillader det.
Øhm,. Du må nok lige prøve at forklare igen. Dine kommentarer virker lidt selvmodsigende:
... når jeg markerer data i "lstbox1", og herefter åbner den almindelige formular "frm_kabler", så er den opdateret og dataene er vist rigtigt i "lstbox1
... Jeg ved ikke hvorfor den ikke opdaterer underformularen "sFrm_kabler"
Spørgsmål: Bliver "frm_kabler" opdateret eller ej?
Hvis du har linket "sFrm_Kabler" korrekt til din main form, burde Access opdatere "sFrm_Kabler", når du kører den lille stump kode, der opdaterer link-feltet (men det ser du ikke, for "sFrm_Kabler" er jo på det tidspunkt skjult - eller hvad?).
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.