[Access 2010] Plattegrond maken van een tabel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Snippo
  • Registratie: Juni 2006
  • Laatst online: 13-09 15:26
Het is de bedoeling dat er een plattegrond wordt gemaakt die er ongeveer zo uitziet:
Afbeeldingslocatie: http://i.imgur.com/wE1Rel.png
Ieder nummer heeft zijn eigen ID in een tabel. Het lukt me echter niet om ze zo te groeperen.
Ik krijg het alleen voor elkaar om de ID's door te nummeren in rijen en/of kolommen. Als ik twee keer hetzelfde veld in een rapport plaats geeft hij ook twee keer hetzelfde ID, dat werkt dus ook niet.
Wat de oplossing zou kunnen zijn is om Access meerdere ID's binnen een rapport-ontwerp door te laten nummeren.
Mijn vraag is of dat mogelijk is? Zo niet, is er een andere manier waarop ik dit voor elkaar kan krijgen in Access?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ja, dat kan :p

Iets langer antwoord met een mogelijkheid hoe het dan kan: Stel je hebt een tabel zoals KlasIndeling(VakId, LeerlingId, PlekId) dan kun je met de query wizard een crosstab query maken om PlekId's als kolommen te krijgen, VakId's als rijen, en first(LeerlingId) als waardes. Op basis van die query kun je dan een rapport maken om voor ieder vak de klasindeling te krijgen. Een kwestie van de wizard daarvoor draaien, en de vakjes goed in het design zetten.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Snippo
  • Registratie: Juni 2006
  • Laatst online: 13-09 15:26
Bedankt voor je reactie. Ik zal binnenkort eens kijken of ik het voor elkaar krijg.
Heb weinig kaas gegeten van Access :+ .

Edit: Ik krijg het niet voor elkaar. Ik denk dat ik niet helemaal duidelijk ben geweest in mijn eerste post. Hier is een voorbeeld van hoe de database eruit ziet: http://dl.dropbox.com/u/53239481/test.accdb . Een rapport maken is het probleem niet, maar het lijkt alleen mogelijk om een herhalend patroon te maken. Het is de bedoeling dat het hier op gaat lijken: http://i.imgur.com/a9Fkz.png . Dus geen lijst met 'data' maar echt een plattegrond. Een kruistabel querry lijkt helemaal niet te werken omdat de waardes (namen van de honden) niet in één kolom of rij staan.
Die nummers staan dus voor hondenhokken :+

[ Voor 71% gewijzigd door Snippo op 03-07-2012 16:19 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Het datamodel met een enkele tabel Hokken(Id, Hok, Hond1, Hond2, Hond3, Hond4) is niet echt zo'n geweldig datamodel. Als het trouwens maar om 1 plattegrond gaat, dan denk ik dat een simpel word- of excel-documentje het handigst is. Anders zou je tenminste iets van een datum of eventId ofzo erbij verwachten in je model.

Een genormaliseerd datamodel zou bijvoorbeeld HokIndeling(Id, EventId, Hok, Positie, HondId) zijn, dus een aparte rij voor iedere hond. Dan kun je ook een kruistabelquery er op loslaten. In zo'n model kun je bijvoorbeeld ook makkelijk terugzoeken bij welke events een bepaalde hond allemaal was, en zijn honden met dezelfde naam toch te onderscheiden aan de hand van hun id.

Overigens is de boel met een query zo om te schrijven dat de crosstab query wizard wel lukt:
SQL:
1
2
3
4
5
6
7
  SELECT 1 AS EventId, Hokken.[Hok] & "_1" AS positie, Hokken.[Hond1] FROM Hokken
union all
  SELECT 1, Hokken.[Hok] & "_2", Hokken.[Hond2] FROM Hokken
union all
  SELECT 1, Hokken.[Hok]  & "_3", Hokken.[Hond3] FROM Hokken
union all
  SELECT 1, Hokken.[Hok]  & "_4", Hokken.[Hond4] FROM Hokken


En vervolgens kun je daar dan dus een crosstab query op doen, en daar weer een justified rapport van maken en de boel op zijn plek zetten.

Overigens kan een willekeurig boek over Database Design of Access helpen. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Snippo
  • Registratie: Juni 2006
  • Laatst online: 13-09 15:26
Access wordt ook gebruikt voor de klantengegevens dus het leek mij wel makkelijk om alles in één programma bij elkaar te hebben. Ik denk dat ik de kruistabel nu pas begin te begrijpen (dat is eigenlijk hoe ik de tabel eerst had opgebouwd).
Ik heb nu het volgende: http://dl.dropbox.com/u/53239481/test.accdb .
Zoals ik het nu begrijp zou ik die 16 entries van één datum voor iedere datum kunnen herhalen en dan wanneer nodig de namen aanpassen (+evt een HondId om gelijke namen uit elkaar te houden). Om dat weer makkelijk te kunnen doen zou ik dan weer een form daarvoor moeten maken oid.

Ik heb nu het volgende: http://dl.dropbox.com/u/53239481/test.accdb .
Echter is het probleem dan nog steeds dat in een (justified) rapport er alleen een herhalend patroon van kolommen of rijen mogelijk is (en dus niet dat hij linksonder op hok 1 begint en rechtsboven op 19 eindigt). Misschien dat ik met een aantal subreports het voor elkaar krijg om de indeling zo te krijgen.

Ik dacht van te voren `kan nooit moeilijk zijn, dat doe ik wel even' haha.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Om de vakjes in het rapport willekeurig te kunnen plaatsen moet alles op 1 rij staan (of je moet de 'control source' van elke control een query geven, of met VBA gaan werken, maar dat is nog lastiger). Daarom moet de kruistabel dus iets anders zijn, wat helaas niet met de wizard kan maar wel in de sql view:
SQL:
1
2
3
4
5
TRANSFORM First(Hokken.[NaamHond]) AS EersteVanNaamHond
SELECT Hokken.[Datum]
FROM Hokken
GROUP BY Hokken.[Datum]
PIVOT Hokken.[Hok] & "_" & Hokken.[Plek];
Snippo schreef op woensdag 04 juli 2012 @ 12:44:
Ik dacht van te voren `kan nooit moeilijk zijn, dat doe ik wel even' haha.
Het schijnt dat access niet gemaakt is voor het maken van plattegronden. :+

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Snippo
  • Registratie: Juni 2006
  • Laatst online: 13-09 15:26
pedorus schreef op woensdag 04 juli 2012 @ 21:19:
Het schijnt dat access niet gemaakt is voor het maken van plattegronden. :+
Blijkbaar :+ .

Met je hulp is het toch gelukt :D. De kruistabel van die laatste SQL code werkte voor het rapport perfect, maar om het makkelijk aan te kunnen passen moest er ook een form komen. Een kruistabel query is niet aan te passen dus daarom heb ik een nieuwe tabel gemaakt met dezelfde layout als de kruistabel query. Database-technisch misschien niet helemaal correct, maar het werkt wel :+ .
Het is nu dus Hokken(Id, Datum, 1_1, 1_2, 1_3, 1_4, 2_1, etc...)

Bedankt voor de hulp :)

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Snippo schreef op vrijdag 06 juli 2012 @ 13:42:
Een kruistabel query is niet aan te passen
Dat kan natuurlijk wel, enkel daarvoor heb je de sql view nodig. Maar leuk om te horen dat je inmiddels iets hebt dat werkt. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1