23. juni 2008 - 16:40Der er
24 kommentarer og 1 løsning
Vælge flere data på en gangfra rulleliste
Hej Jeg er næsten novise så jeg har brug for noget hjælp, jeg har ikke så meget styr på programmeringskoder, så skriv venligst udførligt.
Jeg har en database bestående af flere tabeller fx opgaver (skal udfyldes vha formular), medarbejdere, type opgave.
Bl.a. vil jeg gerne vælge flere medarbejdere i et felt i opgaver, jeg har forsøgt mig med rullepanel med multivalg, men medarbejderne kommer ikke over i opgave tabellen.
Jeg forstiller mig at man markerer 1-flere medarbejdere, som skal i kolonnen øvrige medarbejdere i opgave tabellen.
Jeg har også tænkt på om man kan lave en underformular med medarbejdere, også markere eller "flue af" de medarbejdere man skal bruge. Men jeg har ikke prøvet at arbejde med underformular før.
"Rullepanel med multivalg" = kombinationsboks med mulighed for at vælge mere end 1 person. Jeg har en tabel med medarbejdere, i opgave formularen har jeg et felt hvor jeg vælger 1 medarbejder som er ansvarlig for opgaven, samt et andet felt hvor jeg vilo kunne vælge flere medarbejdere som skal være med til at løse opgaven, det kan fx være 3 medarbejdere.
Hvis du bruger Access 2007 bakker jeg ud - Det kender jeg intet til. I andre versioenr mener jeg ikke, at du kan vælge mere end een post i en kombinationsboks. Så skal du bruge en liste.
Jeg vil anbefale, at du oprettet een post for hver medarbejder der er tilknyttet opgaven, og derefter markerer hvem der er ansvarlig og hvilke der er med på opgaven.
Jeg gætter på, at du vil oprette en post i din opgavetabel med flere navne. Det vil jeg fraråde.
Lav tabeller: - Alle medarbejdere med en PK - Opgave med beskrivelse med en PK - En tabel, hvor du plukker medarbejdere og opgave i hvert sit felt - Denne sidste tsbel skal indeholde et felt der markerer, om medarbejderen er ansvarlig for opgaven. Det kan gøres med en gruppeboks.
På denne måde kan du altid se, hvilken opgave der varetsges af en ansvarlig medarbejder. Ligeledes hvilke opgaver en medarbejder er involveret i.
Synes godt om
Slettet bruger
23. juni 2008 - 23:43#6
Det ser lovende ud når man bruger multiselect (eller hvad det nu hedder!~)
og man kan godt fange det valgte i en kombiboks, f.eks:
Dim Itm as Variant For Each Itm In Me!NavnPåDinKombiboks.ItemsSelected Msgbox Me.NavnPåDinKombiBoks.ItemData(Itm) Next Itm
...men problemet er at du ikke kan gemme en multiselection, så vidt jeg ved!~)
Du er nød til at gemme det i en tabel, du ville så kunne fylde dine valg på en kombiboks ved hjælp af noget kode, men det ville være lidt fjollet at gå igang med!~)
Hvis du skal bruge flere valg linket sammen med en post, så skal du bruge en underformular....
Hvis du eksempelvis havde en tabel med felterne IdOpgave og Ansvarlig, så kunne du lave en formular i enkelt visning, dvs. at man bruge navigations knapperne til at klikke sig igennem sine poster. Hvis man så havde en anden tabel, som indeholdt IdOpgave og Medarbejder, så kan man ud af denne lave en formular, som har løbende visning.
Så går man ind på den første formular og indsætter underformular, hvis man fulgte guiden i dette tilfælde ville den selv sætte IdOpgave som linket mellem de to formularer.
Nu vil du have en formular hvor du indtaster Ansvarlig og så vil du have et vindue hvor du kan fylde medarbejdere i, som hører til denne ansvarlige. Du behøver ikke vise IdOpgave felterne og man kan også få de to formularer til mere eller mindre "smelte" sammen, sådan rent visuelt.... Så det ser lidt smart ud!~)
Jeg kan godt følge dig noget hen ad vejen, men jeg ved helt ærligt ikke hvad du mener med at lave en tabel med "PK".
Synes godt om
Slettet bruger
24. juni 2008 - 09:24#9
jensen363>jeg kan ikke forestille mig andre steder at gemme det, end i en tabel, hvis data skal være der, når man åbner db'en næste gang... om man kan gemme en multiselection i ét felt, det ville være interessant, men jeg har ikke set det!~)
Synes godt om
Slettet bruger
24. juni 2008 - 09:27#10
PK ~ Primær Knøgle?~)
Synes godt om
Slettet bruger
24. juni 2008 - 09:28#11
Nej, spøg til side... Jeg ved ikke hvad PK står for, men det ser bekendt ud!~)
spg > reelt kan du godt gemme variablerne i en forespørgsel, idet kriterie In(), gemmer multiselect kriterierne indtil næste gang multiselect aktiveres
Jeg kunne godt tænke mig at få forklaret havd man skriver i In() og hvor. Det lyder interessant og som jeg jeg ikke skal til at lave megte om af det jeg allerede er kommet frem til.
Det er ikke lige let, hvis man ikke lige er inde i kode, men her er en stump kode jeg benytter i en applikation :
Private Sub MultiSelect_AfterUpdate() Dim Q_1 As QueryDef, DB As Database Dim Criteria_1 As String Dim ctl_1 As Control Dim Itm_1 As Variant Dim sWhere_1 As String
Set ctl_1 = Me![ListFirma]
For Each Itm_1 In ctl_1.ItemsSelected If Len(Criteria_1) = 0 Then Criteria_1 = Chr(34) & ctl_1.ItemData(Itm_1) & Chr(34) Else Criteria_1 = Criteria_1 & "," & Chr(34) & ctl_1.ItemData(Itm_1) _ & Chr(34) End If
Next Itm_1
ListCriteria_1.Value = Criteria_1
sWhere_1 = ""
If Len(Criteria_1) > 0 Then sWhere_1 = " Where [AAAXCD] In (" & Criteria_1 & ")" End If
Set DB = CurrentDb() Set Q_1 = DB.QueryDefs("Multiselect_1") Q_1.SQL = "Select * from Multiselect_all_1 " & sWhere_1
Me![ListFirma] er et skjult tekstfelt jeg har i min form, som "opsamler" min adfærd i forbindelse med Multiselect i listen
Denne adførd indsættes :
sWhere_1 = " Where [AAAXCD] In (" & Criteria_1 & ")"
i en qry kaldet Multicelect_1, som danner grundlag for min qry Multiselect_all_1, som også er en multiselect funktion
Synes godt om
Slettet bruger
24. juni 2008 - 10:50#18
ok.. så du bruger et felt til rent kodemæssigt at samle dine selections for så at putte dem ind i listen igen når man åbner en post... man skal lige vide hvad man laver, men det må være fedt for brugeren.
Det kunne være man skulle give det et forsøg en dag ved lejlighed!~)
Jeg er i første omgang endt med at lave enkelte opslag uden, med max 3 "øverige deltagere". Alt det kodesprog kunne jg ikke helt fatte. Engang når jeg bliver bedre forsøger jeg nok igen.
Hvis du ikke kunne bruge een af vores løsninger, er det helt legalt at tage point retur igen :-)
Synes godt om
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.