Avatar billede verakso Nybegynder
12. oktober 2005 - 14:32 Der er 16 kommentarer og
1 løsning

Hjælp til opbygning af formularer

Mit spørgsmål kunne godt kort lyde som http://www.exp.dk/spm/655350, men jeg har problemet med at få dette til at hænge sammen i en formulat.

Jeg har eks. to tabeller, tblKunde og tblKontaktPerson.

I en rullemenu (dropdown) i min formular kan jeg vælge en kunde fra tblKunde og få denne vist med sit navn.

I den næste rullemenu, vil jeg så gerne liste kontaktpersonerne, men kun ud fra dem der er valgt i den forrige rullemenu.

I dag er min rowsource blot sat til

SELECT tblKontaktperson.KontaktpersonID, tblKontaktperson.KontaktpersonNavn FROM tblKontaktperson ORDER BY tblKontaktperson.KontaktpersonNavn;

med en Bound to column 1, hvilket jo bevirker at uanset hvad jeg har valgt i den forrige rullemenu, så vises alle kontaktpersonerne i denne rullemenu.

Og ja, jeg er ret blank hvad det angår til formularer i Access.
Avatar billede Slettet bruger
12. oktober 2005 - 15:02 #1
I din forespørgsel (rowsource) for rullemenu2 skriver du under kriterie for kontaktpersonnavn:
[forms]![dinFormular]![navnRullemenu1]

Så viser listen kun de kontaktpersoner, som er tilknyttet.

Du skal så lige huske at i rullemenu1 under egenskaber ved AfterUpdate, skal der lige være lidt kode:

me.navnRullemenu2.requery

!~)
Avatar billede Slettet bruger
12. oktober 2005 - 15:10 #2
Det er selvfølgelig en forudsætning at du rent faktisk har en sammenhæng mellem de 2 tabeller, dvs. at enten tblKunde indeholder kontaktpersoner eller tblKontaktPerson indeholder kunder. Dette vil være nødvendigt under alle omstændigheder ellers hænger det ikke sammen!~)
Avatar billede Slettet bruger
12. oktober 2005 - 15:12 #3
En mulighed vil så være at lave en 3. tabel:

Id
Kunde
KontaktPerson

Og så sætte sagerne sammen på den måde....
Avatar billede verakso Nybegynder
12. oktober 2005 - 15:19 #4
Jeg må have misset noget fundementalt.

Min Row Source i rullemenu2 (Combo45) ser således ud nu
SELECT tblKontaktperson.KontaktpersonID, tblKontaktperson.KontaktpersonNavn
FROM tblKontaktperson
WHERE (((tblKontaktperson.KundeID)=[forms]![frmJob]![Combo57]))
ORDER BY tblKontaktperson.KontaktpersonNavn;

Row Source i rullemenu2 (Combo57) ser således ud:
SELECT tblKunde.KundeID, tblKunde.KundeNavn
FROM tblKunde
ORDER BY tblKunde.KundeID;

Jeg kunne ikke få AfterUpdate til at spille, da min Access 2003 Int, påstår at der ikke er noget me.

Så derfor er det eneste jeg nu kan se i rullemenu2 er de kontaktpersoner der er knyttes til den første KundeID.
Avatar billede verakso Nybegynder
12. oktober 2005 - 15:23 #5
Nå jeg fandt ud af at det sidste skulle bygges som en Event Procedure, men det virker nu aligevel ikke.
Avatar billede Slettet bruger
12. oktober 2005 - 15:24 #6
I afterupdate skal du trykke på knappen med de 3 prikker, så skal der stå:

private sub bla. bla.
me.navnRullemenu2.requery
end sub
Avatar billede Slettet bruger
12. oktober 2005 - 15:30 #7
Er bound columns på combo1 sat til 1?~)
Avatar billede Slettet bruger
12. oktober 2005 - 15:33 #8
Hvis det stadig ikke virker kan du lave et skjult felt og så i afterupdate for combi57:
me.skjultfelt=me.combo57

og så forespørgslen på combo45:

SELECT tblKontaktperson.KontaktpersonID, tblKontaktperson.KontaktpersonNavn
FROM tblKontaktperson
WHERE (((tblKontaktperson.KundeID)=[forms]![frmJob]![skjultfelt]))
ORDER BY tblKontaktperson.KontaktpersonNavn;
Avatar billede Slettet bruger
12. oktober 2005 - 15:35 #9
Privat Sub Combo57_AfterUpdate
Me.Skjultfelt = Me.Combo57.Column(0)
Me.Combo45.Requery
End Sub
Avatar billede Slettet bruger
12. oktober 2005 - 15:55 #10
Jeg kigger forbi imorgen!~)
Avatar billede Slettet bruger
13. oktober 2005 - 09:24 #11
Hvordan går det?~)
Avatar billede verakso Nybegynder
13. oktober 2005 - 21:29 #12
Jeg har været straped up med en controler til et FTP RAID der besluttede sig for at båle af, efterfølgende med et mindre mail crash (Hvis FTP ikke duer, så mailer folk bare skidtet i stedet)

Så jeg har synd at sige ikke fulgt op på de sidste kommentarer, det vil jeg gøre i morgen og med friske øjne.
Avatar billede Slettet bruger
14. oktober 2005 - 09:22 #13
!~)
Avatar billede verakso Nybegynder
01. november 2005 - 15:40 #14
Så lader det til at virke, jeg har også fået det til at fungere på andre rullemenuer.

Der er dog en lille irriterende ting.

Når jeg i formularen kommer til en ny(gammel) record, så er rullememuerne tomme. Ændrer jeg den første rullemenu, og ændrer den tilbage igen så bliver rullemenu 2 & 3 opdateret korrekt.

Er er ikke en eller anden stump kode jeg kunne smidde på, så det bare lige sad i øjet?
Avatar billede Slettet bruger
02. november 2005 - 15:10 #15
Du kan jo sætte requery'erne på VedAktuelt hændelsen (OnCurrent)!~)
Avatar billede Slettet bruger
02. november 2005 - 15:10 #16
Altså for formularen.....
Avatar billede verakso Nybegynder
24. juli 2006 - 12:09 #17
Det virkede bare top-nice, jeg har fået udviddet formularen, med nogle mail-links, og genvejde til diske drev m.m., men er nu rendt ind i endu et problem.
Det er beskrevet her: http://www.eksperten.dk/spm/722049
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