30. januar 2002 - 14:20Der er
18 kommentarer og 1 løsning
Ændre valgmuligheder i en comboboks via valg i anden comboboks
Jeg har en formular med bl.a. 3 combobokse (herefter benævnt (1), (2) og (3)), hvor jeg ønsker, at listen med valgmuligheder i skal ændre efter, hvad der er valg i en foregående comboboks. Således skal valget i (1) være afgørende for listen i (2) og (2) for i (3).
(1) indeholder mulighederne fra tabellen type, (2) ------------------------------------ gruppe og (3) ------------------------------------ kategori
For at ovenstående skal kunne lade sig gøre, indeholder tabellen gruppe et typefelt og tabellen kategori indeholder et gruppefelt.
MEN jeg mangler noget kode, som kan få den beskrevne funktionalitet til at virke. Kom venligst med udførligt eksempel!
Det var også min ide, men jeg er i tvivl om, hvordan koden skal se ud, hvor du har skrevet "...."
Er det noget problem, at jeg bruger "fortløbende formular", som standardvisning - eller holder "Me"-delen af koden styr på, at det kun er det aktuelle post, at der bliver pillet ved?
If I were you I would make sure that the RowSource for Gruppe and kategori are EMPTY when the form gets opened. This means that the Type MUST be selected before the Gruppe gets filled and the Gruppe MUST be selected before the kategori gets filled. This way you know that the combo's are synchronised!
it-dyret> I cant see how many columns or what the data types are in your combo boxes so youmay need to give the column number in the combo to get it to work. Column numbers start from 0 up to one less than the number of columns you have in the combo. You need to use th ecolumn which contains the TypeId! If it was in the first column then use:
Me.FeltTransaktionsGruppe.RowSource = "SELECT * FROM TblTransaktionsgrupper WHERE TypeId = " Me.FeltTransaktionsType.Column(0)
Fint! Jeg skulle lige til at skrive min egen løsning, hvor jeg blot vælger den ønskede attribut i min SELECT statement, og derefter bruger & sammen med "" for at få samme resultat, men det er altid godt med alternative løsninger!
PS: Efter at have skrevet lidt på din modersmål, er det pludselig meget tydeligt, hvor meget hurtigere det er på ens eget modersmål :)
Min 56k-forbindelse halter vist lidt bagefter her... :)
Jeg kan se, at rowsource ændrer sig for samtlige poster, når jeg begynder at indtaste data i formularen. Er der en måde, hvorpå man kan begrænse ændringen til kun at omfatte den pågældende post, man arbejder på. Ellers bliver man jo nødt til at fremprovokere en AfterUpdateEvent, hvis man vil tilbage i posterne og ændre f.eks. en gruppe...
Først skal jeg måske forklare, at min formular er sat til "fortløbende formular" i "standardvisning" under detajlesektionens "formater". Grunden til dette er, at det er vigtigt, at man kan se flere rækker poster/tupler, når man indtaster data i formularen.
Dette virker fint, men der dukker et problem op, hvis jeg på et tidspunkt vil rette i gamle registreringer: Comboboks (2) er nemlig altid defineret ud fra sidste valg i (1).
Det vil sige, at hvis jeg vil ændre gamle data i (2), hvor der i (1) er valg data af typen A, kan det ikke lade sig gøre, hvis jeg senest har registreret data af typen B - for nu er rowsource for (2) defineret ud fra sidste valg, nemlig datatype B. For at få den rigtige liste frem ved de gamle data, jeg ønsker at ændre, er det nu nødvendigt at vælge typen A i (1), selvom den allerede er valgt, for at udløse eventen AfterUpdate, hvor rowsource ændrer sig til det "rigtige".
Kan man gøre, så rowsource er defineret ud fra, hvilken post/tuppel man arbejder med i stedet for, hvad man valgte sidst?
Du har nok ret med den 486!!! Eksperten er nok blevet andenviolin efter Sharksforum, men der er nu ikke så meget gang i Sharksforum i denne kategori...
it-dyret>I think I understand your problem now! If your combo-boxes are in the detail then the contents of these is valid for ALL records. I work with Access 97 and I know this is a problem, but I am NOT 100% sure as to how it is in Access 2000 + XP, although I think it is the same. This is JUST an idea and it will take some alterations to your program. Keep the type kombo on the detail. Then change the Gruppe and kategori comb's to text boxes. Then make a small form containing the two combo's (Gruppe and kategori). You can get this form to open in the Type Combo's after update event, and you choose the Gruppe and kategori from this form. The values you chose are then placed in the two text fields in the detail.
As I said, this IS just an idea and will take some alterations, but it about the best I can suggest.
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.