Avatar billede stiness Nybegynder
06. april 2007 - 10:25 Der er 16 kommentarer og
2 løsninger

På bar Access-bund

Hej med jer

Jeg har for første gang defineret mig en database i Access og er nu nået til at ville definere nogle formulare.. og er gået heeeelt i stå!

Lad mig illustrere min situation med et simplere eksempel! - Vi betragter 3 tabeller:

  person(id, navn)
  egenskab(id, beskrivelse)
  person_egenskab(person_id, egenskab_id)

Er det da muligt at lave en formular i stil med:

  Navn: [Peter            ]

  [x] Tålmodig
  [ ] Optimistisk
  [x] Hjælpsom
  [ ] Rødhåret

Dvs. hvor alt indhold af "egenskab" listes og afkrydses i overenstemmelse med den viste persons indgange i "person_egenskab"..

Jeg vil være lykkelig for inputs..

Tuuusind tak,
Stine
Avatar billede mugs Novice
06. april 2007 - 10:34 #1
Først skal du se lidt på dine tabeller.
Hvad er f.eks forskellen på tabellerne egenskab og person_egenskab? Jeg vil mene du skal samle disse 2 tabeller i een med poster som:

ID  beskrivelse
1    Tålmodig
2    Optimistisk
3    Hjælpsom
o.s.v.

Rødt hår er vel ikke en egenskab i egentlig forstand men et kendetegn for personen i lighed med Tyk, Tynd og blå øjne. Disse kendetegn kan du så samle i en særskilt tabel.

Lav derefter en ny tabel med kombinationsbokse og relationer til de øvrige tabeller, hvori du "plukker" de forskellige egenskaber / kendetegn. Opret en ny post med personid (IKKE PK) og tilhørende egenskaber. Du kan have lige så mange poster med samme personid som personen har egenskaber / kendetegn.
Avatar billede mugs Novice
06. april 2007 - 10:36 #2
P.S.: Er på påskeferie og er kun sporadisk på nettet, så du må ikke forvente at jeg jævnligt kommenterer.
Avatar billede stiness Nybegynder
06. april 2007 - 10:40 #3
Tak for dit svar.... men jeg er bange for jeg slet ikke er med >/

De angivne tabeller og deres indhold var bare ment som et eksempel på en situation, hvor man har to tabeller og så en tabel, der forbinder indgange i den ene tabel med indgange i den anden tabel..

Eii, kan godt høre, at der vist er håbløst lang vej til at få mig på ret køl <:/
Avatar billede stiness Nybegynder
06. april 2007 - 10:42 #4
Roger that med påskeferien;) Lyder fornuftigt!!
Avatar billede stiness Nybegynder
06. april 2007 - 10:45 #5
Ville man kunne lave en form, som præcis ser ud som den, jeg nævner i mit indledende spm? <:)
Avatar billede stiness Nybegynder
06. april 2007 - 11:10 #6
Jeg har før lavet php-interfaces.... og synes, jeg er meget mere "låst fast" i Access-formularerne.. men det er nok bare fordi, jeg skal tænke heeeelt anderledes med formularer?! :S

I php ville jeg jo f.eks. kunne hente listen af egenskaber samt information om, hvorvidt den enkelte egenskab var hæftet på personen eller ej (left join forespørgsel?!), og så ku jeg få lavet min checkbox-liste vha. en simpel for-løkke..

Synes slet ikke jeg kan få den løsning konverteret til noget Access-formular-guiden forstår..

Arg, nogen der har en øjenåbnerkommentar?! :D
Avatar billede mugs Novice
06. april 2007 - 11:36 #7
Der er ikke noget i vejen for, at du kan lave din formular som du beskriver. Men kontroller først dine relationer om de er korrekte. Derefter laver du en forespørgsel med relevante tabeller og felter. Ud fra denne forespørgsel kan du lave din formular. Find evt. ikonet på mednulinuien for en autoformular og byg videre på den.

Du kan evt. sende din db til:

mugs snabelting punktumdk

som en zip fil. Så vil jeg se på den når jeg er hjermme igen sent på eftermiddagen.
Avatar billede stiness Nybegynder
06. april 2007 - 11:48 #8
Du er da en sand helt mugs!! Men min egentlige database er kæææmpe stor og kompleks og væmmelig, så den vil jeg ikke være bekendt at belemre nogen med:D Men hvis du måske ku vøre sød at vise mig, hvordan man kan lave den formular, jeg ævler om i mit indledende spørgsmål, så har jeg en idé om, at jeg vil kunne forstå princippet og forhåbentlig overføre det til den store grumme database.... det ville være skjøøønt!!
Tak for hjælpen og god lang fredag,
-Stine
Avatar billede mugs Novice
06. april 2007 - 12:12 #9
Det bedste vil være, om jeg kan sende dig et eksempel sent i eftermiddag. Hvis du blot sender mig en mail, så svarer jeg på den.
Avatar billede stiness Nybegynder
06. april 2007 - 12:34 #10
Det gør jeg gerne :) Men sys der mangler noget i din mailadresse? :)
Avatar billede mugs Novice
06. april 2007 - 15:48 #11
Eksempel sendt.
Avatar billede terry Ekspert
06. april 2007 - 18:14 #12
You need three tables, this is a typical many to many relationship and impossible with only two.
Avatar billede terry Ekspert
06. april 2007 - 18:25 #13
Things such as hair colour and height which we all have (hair colour = none :o) ) could be in person table, but Tålmodig, Optimistisk, Hjælpsom etc) would be in a separate table where you could choose zero, one or more and thats why you need another table
Avatar billede stiness Nybegynder
06. april 2007 - 21:54 #14
But I /do/ have three tables in my example?!
Avatar billede stiness Nybegynder
06. april 2007 - 21:57 #15
Oh - you are maybe refering to mugs suggestion of merging two of those three tables..
Avatar billede Slettet bruger
06. april 2007 - 23:21 #16
Der er jo mange måder at gøre tingene på, men hvis vi bruger dit eksempel med de 3 tabeller, så prøv flg.:

Fyld først lige lidt data ind i tabellerne person og egenskab...
Så opret en formular vha. en guide, vælg tabellen person_egenskab, vælg person_id og egenskab_id og tryk udfør...
Gå i design visning og slet feltet person_id, flyt egenskab_id op til toppen af detail sektionen og så gør detail sektionen så smal som muligt...
Højreklik uden for formularen og vælg egenskaber. Sæt standardvisning til fortløbende formular, rullepaneler til lodret og navigationsknapper og skillelinier til nej...
Så højreklikker du på feltet egenskab_id og omdanner den til en kombinationsboks. Højreklik på kombinationsboksen og vælg egenskaber. Under rækkekilde indsæt:
SELECT Egenskab.Beskrivelse, Egenskab.id FROM Egenskab;
og sæt antalkolonner til 2, kolonnebredde til 3cm;0cm og bundetkolonne til 2...
Luk formularen...
Opret en ny formular vha. en guide, brug tabellen person, vælg id og navn og tryk udfør...
Slet id feltet og flyt navnefeltet op på formularhovedet...
I detalje sektionen indsætter du en underformular (vha. værktøjskassen), du vælger selvfølgelig person_egenskab og trykker udfør...
Højreklik på underformularen og vælg egenskaber. Sæt UnderordnedeFelter til Person_id og Overordnedefelter til id...
Så burde det køre...

God påske!~)
Avatar billede stiness Nybegynder
08. april 2007 - 21:06 #17
Tusind tak for hjælpen!! Især spqs løsning var lige i øjet:)
Avatar billede Slettet bruger
08. april 2007 - 23:18 #18
!~)
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