18. oktober 2005 - 17:50Der er
13 kommentarer og 1 løsning
Tillade multiple choice til tabel felt
Hej Alle,
Jeg ønsker at lave et system der holder styr på hvilke skilte jeg tager med på forskellige udstillinger. Derudover vil jeg gerne have en historik på hvor de har været.
Jeg har lavet en db med 2 tabeller - en over udstillinger og en over skilte. Derudover har jeg en formular med en list box hvor jeg vælger hvilke udstillinger har haft hvilke skilte. Problemet er bare at den kun tillader jeg vælger 1 udsilling - ikke flere. Såsnart den sættes på "multiple" bliver den blank!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Som du har set kan en listbox multiselect sættes til: Ingen Simpel Extended
Hvis du vælger extended har du mulighed for at vælge flere værdier i listboxen. Men du mangler at fortælle databasen hvordan den skal håndtere de valgte værdier. Normalt vil du jo med en enkelt markeret række vælge én værdi, som lander i et felt i databasen. Den værdi vil være værdien i listboxens bundne kolonne.
Du skal have en tabel, hvor du lagrer information om hvor skiltene har været.
Du har: tblSkilte, tblUdstillinger og skal have tblSkilteUdstillinger som f.eks. kunne være ID (auto) SkiltID (tal) UdstillingID (tal)
har du allerede den tabel? Den normale måde at gøre det du beder om ville være at lave en underformular, bundet til tblSkilteUdstillinger.
Nå du vælger en udstilling skal du samtidig vælge en skilt. D.v.s. at hvis du på en udstilling har haft 2 skilte med, skal du oprette 2 poster i tabellen udstilling. Jeg vil anbefale, at du laver en ny tabel med navnet på udstillingerne. Derefter samler du data om Udstilling og skilte i en 3.tabel.
Problemet er - så snart jeg skifter til multiple choice forsvinder mit valg. feltet i min tbl_Tradeshows vil åbenbart kun have en værdi i sig? giver det mening? Hvordan "mapper" jeg mit valg til en ekstern tabel? Det tillader "list box" ikke - den lader mig bare vælge et eksisterende felt i min nuværende tabel - dvs tbl_tradeshow..
Men hvis du vil overføre de valgte poster fra din liste til et felt i din tabel kan du bruge denne:
Private Sub Kommandoknap0_Click() Dim Itm As Variant Dim txt As String If Me!Liste1.ItemsSelected.Count > 0 Then For Each Itm In Me!Liste1.ItemsSelected txt = txt & Me!Liste1.ItemData(Itm) & "; " Next Itm txt = Left(txt, Len(txt) - 2) End If Me!FELTNAVN = txt End Sub
Jeg kan sende dig et eksempel. Blot læg sdin e-mail.
Mugs eksempel er selvfølgelig helt korrekt og lægger alle de valgte shows i et enkelt felt i din tabel. Er det det der er meningen? Jeg vil blot nævne at det nok burde laves med en underformular, men som Mugs viser skal dataene "indsamles" fra en listbox, der er sat til "extended" før de kan bruges til noget. Man kan ikke koble den direkte til et felt i tabellen. Hvis du vil have den 3. tabel "tblSkilteTradeshows" og koble det sammen med valgte rækker i en Extended-multiselect-Listbox kræver det et par krumspring, da der hele tiden skal lægges til og fra tabellen "tblSkilteTradeshows" når markeringen ændres.
1) Lave en database der holder styr på hvilke udstillinger (tradeshows) de ca 200 skilte (drops) har været. 2) Lave en database der holder styr på hvilke skilte der skal med på kommende udstillinger.
Jeg forestillede mig en tre tabel opsætning. Dvs tbl_drops, tbl_tradeshows og tbl_history. Dertil forestiller jeg mig en formular hvor jeg kan se hvad hvilke drops der hører til hvilke tradeshows - både frem i tiden og tilbage i tiden. Samt endelig en rapport der viser mig hvor de forskellige drops har været :o)
Eksempel er sendt. Men jeg ville nok gå en lidt anden vej. Du har en række udstillinger og en række skilte, hvor udstillingerne er i en særskilt tabel og skiltene i en anden. Disse 2 parametrer skal nu kombineres i en 3. tabel. Dette kan du gøre med 3 feltet:
- FLDudstilling - FLD skilt - FLDid (PK)
Værdierne vælger du med kombinationsbokse. Dette betyder, at hvis du har een udstilling hvor du har medbragt 3 skilte, skal der oprettes 3 poster med samme udstilling og 3 forskellige skilte. Det lyder lidt omstændigt, men du kan programmere dig ud af det ved at kopiere posten og kun vælge et nyt skilt. Dermed kan du som (som jesperfjoelner er inde på), benytte en unbderformular til at vise, hvilke skilte det har "deltaget" i hvilke udstillinger.
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.