24. oktober 2017 - 13:00Der er
10 kommentarer og 2 løsninger
hvordan relaterer jeg en tabel i en underformular til et valgt element i en liste
Hej folkens
Jeg har i en formular en liste "lstSager" der viser indholdet fra en bestemt tabel kaldet "tblSager".
Er det muligt at lave underformular der viser indholdet af en anden tabel "tblBeregninger", som er relateret til "tblSager", baseret på et valgt element i en listen "lstSager".
Altså idéen er at jeg vælger en bestemt sag fra listen "lstSager", og så skal nogle bestemte beregninger fra en relateret tabel "tblBeregninger", vises i underformularen, som jeg skal have mulighed for at redigere i fra underformularen,
Altså jeg havde tænkt mig at taste mine tal ind direkte i tabellen som bliver vist underformularen. Tabellen beregner så herefter selv de værdier jeg skal bruge. Ligesom hvis det havde været en excel ark. Forskellen er bare at den tabel der bliver vist i undeformularen skal være direkte relateret til det element fra tabellen "tblSager" som jeg vælger i listen "lstSager".
Hvis der er andre måder at lave ovenstående på er jeg også interesseret i at høre omkring dette.
If the main form has a list box which contains data from tblSager then you cant have a linked sub form, or I dont think you can. But you can have a sub form which gets updated when you choose an item in your Sager list box.
A while I made a similar example or your, where you had two list boxes. One showing Bruger information, and another for Sager information. When you chose an item in Bruger list the contents for sager list changed showing data related to the chosen Bruger.
So first you need to alter the sub forms record source so it contains a criteria which references your sager list. EG: [Forms]![Form1]![LstSager]
and some code to requery the sub form when you chose an item in list
Problemet er at når jeg bruger en underformular som objekt, så er der tilsyneladende ingen "record source" parameter. Istedet er der noget som hedder "KildeObjekt" eller "SourceObject" om du vil. Denne parameter kan jeg kun bruge til angive hvilken tabel eller forespørgsel dataene skal hentes fra, men jeg kan ikke bruge vba kode til at styre den. Den henter bare dataene fra den angivne tabel og viser dem.
KildeObjekt is the same as "record source". You need to change the tabel to an SQL SELECT statement with a criteria. If you press the little icon containing ... which is beside the table name you go into query builder. Here choose the fields you want in the form which I guess its all of them. Then you need to include a criteria so its end up similar to this (table and fields names will differ) So mit only selects the records which are related to the selected record in lstSag
SELECT tblBeregninger.ID, tblBeregninger.SagID, tblBeregninger.field1, tblBeregninger.field2 FROM tblBeregninger WHERE (((tblBeregninger.SagID)=[Forms]![Form1]![LstSag]));
Det ser ud som at jeg godt kan få den til at skifte tabel vha. din metode.
Men den opdatere ikke tabellen automatisk. Jeg bliver nød til først at ind i query builder og derefter køre query'en. Nå jeg lukker query builder igen er tabellen opdateret. Men hvordan får jeg den til at gøre det automatisk?
Jeg vil gerne kunne markere et element i listen, og så skal underformularen skifte tabel af sig selv.
"Det ser ud som at jeg godt kan få den til at skifte tabel" Its not changing table but the data which is being selected from the table. The data it selects is dependant on what row you have selected in the listbox.
"Men den opdatere ikke tabellen automatisk"?
Not sure I understand what you mean here :-(
is it possible for me to see the dB? I think you already have my email address
Opret et tekstfelt på din hovedformular. Vi kalder det her: "Nøgle". Sæt Synlig til False.
I feltet lstSager's AfterUpdate lægger du: Me.Nøgle = Me.lstSager
Link så din subform til Nøgle således: På din subforms egenskabsfane "Data" sætter du "OverordnedeFelter" til "Nøgle" og "UnderordnedeFelter" til det felt, der indeholder sagsnummeret på din subform.
Vupti! Så spiller det - og du får endda automatisk indsat sagsnummeret i den subform.
... og så er det måske elegant, hvis du lægger følgende i din hovedformulars FormOpen hændelse: Me.Nøgle = Null Me.lstSager = Null så din subform er tom til at starte med.
>>Terry You're right. Ville bare vise effekten lidt tydeligere ;O)
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
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.