Opgelost Uitbreiden formulier met serienummer van laatst bekeken aflevering van tv-serie

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Hevoolst

Gebruiker
Lid geworden
25 nov 2007
Berichten
82
Hallo allemaal,

Dit Access formulier laat van tv-series het aantal bekeken afleveringen zien. Ik wil dit formulier uitbreiden met een kolom, waarin het serienummer van de laatst bekeken aflevering staat, zodat ik weet waar ik gebleven ben. In feite zoek ik naar een naar dezelfde functionaliteit als (verticaal) zoeken in Access. Hoe pak ik dat het beste aan?

Met vriendelijke groeten,

Henk
 

Bijlagen

  • Formulier_tv-series_30102023.png
    Formulier_tv-series_30102023.png
    24,8 KB · Weergaven: 19
Ik snap niet helemaal wat je bedoelt. Aan een plaatje hebben we sowieso niet zo veel, want ik ga dit uiteraard zo niet nabouwen :). Er vanuit gaande dat je de gegevens in een veld hebt staan (al heb ik geen idee hoe een televisie serie een 'serienummer' kan hebben) met vermoedelijk een zelf toegewezen nummer voor de aflevering (iets als s02-11 bijvoorbeeld?) kun je dat veld natuurlijk gewoon aan je query toevoegen. Ik vermoed dan óók dat je een Totalenquery hebt gemaakt waarin je groepeert op Serienaam, en met functies zoals Aantal het aantal afleveringen hebt berekend, is het vrij simpel om de laatste bekeken aflevering op te vragen. Het aantal bekeken afleveringen zul je wel afleiden uit een Ja/Nee veld, en op basis daarvan kun je dus, bijvoorbeeld met een subquery, de laatste aflevering wel opvragen.
 
We hebben inderdaad meer informatie nodig over de achterliggende database.
Ik ben trouwens ook benieuwd hoe je het voor elkaar krijgt dat op het formulier in dezelfde kolom de velden verschillende breedtes hebben. Met een doorlopend formulier (de normale aanpak in deze situatie) lukt dat niet.
Deel alsjeblieft je database zodat we je op weg kunnen helpen.
 
@peter: die vraag heb je dan zelf beantwoord :). Het zou me niks verbazen als het inderdaad een enkelvoudig formulier is waarop de velden (labels) handmatig zijn ingevuld. En dan met een Recordset gevuld. Maar dat is zeker niet de slimste werkwijze :).
Maar goed, dat is dan ook precies de reden waarom ik een (uitgeklede) versie van de database wil zien.
 
Dag Peter en Michel,

Het serienummer heb ik ingevoerd om de volgorde van de afleveringen vast te stellen. Ik heb de functie Dcount gebruikt om het totaal aantal afleveringen te bepalen, alsmede het aantal bekeken afleveringen. Verder heb ik inderdaad niet de slimste methode gebruikt om het formulier te vullen.

Met vriendelijke groeten,

Henk
 

Bijlagen

En om welk formulier gaat het?
 
Laat maar, formulier al gevonden. Veel belangrijker: je wilt dus filteren op "Murder she wrote", maar dat vind ik nergens terug in je tabellen. Wél dus Angela Lansbury. Maar dat is natuurlijk een hele verkeerde insteek. Zorg ervoor dat je programma's terug te vinden zijn op de programmatitel. Dat is veel beter. Stel je voor dat een acteur zó goed is dat-ie aan twee programma's mag meedoen; zit jij mooi in de problemen :).
 
Voor wat het waard is (Octafish heeft uiteraard volkomen gelijk) op zo'n formulier:
Code:
=Dmax("[Serienummers]";"[Media]";"[Inhoudsbetrokkene]='Angela Lansbury' And [Mediabeoordeeld]='Bekeken'")
Dit dan natuurlijk wel onder de aanname dat je de afleveringen in volgorde van het "serienummer" bekijkt. Een "datum voor het laatst bekeken" zie ik in ieder geval niet.
 
Ik heb op basis van jouw voorlopige gegevens een kruistabel gemaakt die precies de info geeft waar jij nogal moeilijk over doet. Daar even een formuliertje van gemaakt en gefilterd op Angela, zodat je kunt zien dat de data heel simpel is op te vragen. Jouw initiële vraag zet ik er zo in. Maar dan kun je alvast zien waar het m.i. heen moet.
 

Bijlagen

Dag Michel en Peter,

De serie Murder she Wrote staat in de tabel "Mediabox" onder de kolom serienaam. Dus voor het geval Angela Lansbury in meerdere series zou spelen, kan ik in een query een onderscheid aanbrengen.

Verder ben ik blij met de suggestie van Peter. Ik heb geaarzeld over de vraag of ik de datum, waarop ik de aflevering heb bekeken, moest opnemen; ik vond dat niet nodig. Het is de bedoeling om de series in chronologische volgorde te bekijken. Voor het geval dat ik afwijk, kan ik dat gemakkelijk in de kolom Mediabeoordeeld zien.

Tenslotte wacht Ik met belangstelling de nadere informatie van Michel af.

Henk
 

Bijlagen

  • Schermafbeelding 2023-10-30 173533.png
    Schermafbeelding 2023-10-30 173533.png
    53,8 KB · Weergaven: 4
Nog een heel vervelend dingetje: omdat je niet met serienamen en gegevens werkt, is het behoorlijk lastig om in een query te filteren op de juiste data (zie mijnn opmerking in #7). Daarom dus alleen een voorlopige query met daarin per type het laatste serienummer.

Code:
SELECT Media.Inhoudsbetrokkene, Media.Mediabeoordeeld, Count(Media.Media_id) AS Aantal, 
(SELECT Top 1 Serienummers From Media As tmp 
Where tmp.Inhoudsbetrokkene = Media.Inhoudsbetrokkene And tmp.Mediabeoordeeld = media.Mediabeoordeeld Order by tmp.Media_ID Desc) AS Laatste_Serienummer
FROM Media
WHERE (((Media.Medium)="DVD"))
GROUP BY Media.Inhoudsbetrokkene, Media.Mediabeoordeeld
HAVING (((Media.Inhoudsbetrokkene) Like "ang*"))
ORDER BY Media.Inhoudsbetrokkene;
 
Verder ben ik blij met de suggestie van Peter.
Ik denk dat mijn oplossing de betere kant op gaat.... Je wilt uiteraard op alle series willen kunnen filteren :).
 
Verder vind ik je tabel Mediabox niet kloppen; Een serie heeft één naam (Murder she wrote), niet 13 zoals bij jou. Dat er een aantal seizoenen is, dat is logisch, maar daar maak je een koppeltabel voor. In de tabel Media koppel je dus het (niet-bestaande veld) SerieID aan het (niet-bestaande) veld SerieID in de (niet-bestaande) tabel Series, en dan kom je een heel eind. In de tabel Series zet je dan alle seriegerelateerde gegevens, in de koppeltabel SerieSeizoenen de gegevens per seizoen. Dus welk seizoen het is, wanneer het voor het eerst werd uitgezonden etc. Maar je hebt dus één record voor Murder she wrote nodig :).
 
Dus voor het geval Angela Lansbury in meerdere series zou spelen, kan ik in een query een onderscheid aanbrengen.
Moeilijker wordt het als een serie meerdere "Inhoudsbetrokkenen" heeft. Wat te denken van Starsky and Hutch of The A-team?
Dit nog afgezien van het feit dat je de "Inhoudsbetrokkenen" (👏 voor de creativiteit) per "medium" (= aflevering?) vastlegt. Dus dat Angela Lansbury de hoofdrol speelt in Murder she wrote leg je wel heel vaak vast.

En over medium versus aflevering: wat als er meerdere afleveringen op een medium (schijf) staan?

Als ik verder zo door je tabellen blader heb ik de indruk dat je heel veel verschillende zaken op een hoop probeert te gooien. Nu is het vaak goed om zo veel mogelijk te generaliseren, maar ik ben bang dat je hier wat doorslaat. Waar het ook om gaat, je perst alles in de structuur Mediabox - Medium, waardoor je bijvoorbeeld heel veel naamloze mediaboxen hebt. En je Angela Lansbury en de Volkskrant op één lijn plaatst.
 
Wat we proberen te zeggen: er deugt niet zo heel veel van de structuur. En dat maakt het werken van de database een stuk moeilijker dan noodzakelijk. Nog afgezien van het feit dat bepaalde zaken niet eens kunnen met deze opzet. Ik zou zeggen: stop met de huidige opzet, verdiep je eerst in het Normalisatie proces, zorg dan dat je tabellen structuur in orde is, en ga dán formulieren en rapporten maken.

Uiteraard kun je best je huidige tabellen gebruiken om straks de goede tabellen te vullen. Mocht je een voorzetje willen hebben, dan is die uiteraard zo gemaakt of te vinden :).
 
Bedankt voor jullie (stevige) kritiek. Ik volg jullie adviezen op en ga opnieuw normaliseren. Ik ben ook geïnteresseerd in een voorbeeld database. De database, die mij voor ogen staat, legt eigenschappen en veranderingen vast van verschillende media: boeken, dia's, fotonegatieven, dvd's, cd's en lp's
 
Ik zou daar vermoedelijk verschillende subtabellen voor gebruiken, omdat je nogal verschillende eigenschappen hebt voor de soorten media. Van een DVD leg je nu eenmaal hele andere eigenschappen vast dan van een negatief. Je zou zelfs verschillende databases kunnen gebruiken voor de verschillende media, en een overkoepelende database waarin je de tabellen koppelt en vult.
 
Michel, kun je je laatste zin nader toelichten? Zijn dat verschillende databases binnen 1 Access-bestand?
 
Nee, dat zijn dan echt aparte databases. Daarbij kun je er dan voor kiezen om ze geheel zelfstandig te maken met tabellen en formulieren etc, en daarnaast een ‘verzameldatabase’ waarin je alle noodzakelijke tabellen uit die databases koppelt. En met een (of meer) centraal formulier bestuurt.
Andere aanpak: in de losse databases alleen de data opslaan en de tabellen koppelen in de centrale database, en alle GUI elementen in de centrale maken.

Ik weet niet wát je wilt opslaan, en hoeveel, en of daar ook afbeeldingen bij zitten, maar met losse databases vergroot je in ieder geval de beschikbare hoeveelheid opslagruimte. Voor de werkbaarheid en/of snelheid maakt het niet uit of je met één database werkt of met meerdere gekoppelde databases.

Maar één database met alle tabellen kan uiteraard ook. Zeker om mee te beginnen is dat wat sneller/makkelijker.
 
Dank je Michel. Ik begin met alle tabellen in 1 database. Dat betekent, dat ik dit topic afsluit, omdat mijn initiële vraag beantwoord is. Zodra ik voldoende gevorderd met het normaliseren, zal ik het resultaat in een nieuw topic voorleggen. Michel en Peter, bedankt voor het meedenken.

Met vriendelijke groeten,

Henk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan