Beoordeling van gemaakte database

Status
Niet open voor verdere reacties.

JacobCats

Gebruiker
Lid geworden
13 jun 2014
Berichten
130
Beste OctaFish,

Wellicht een brutale vraag maar ik durf hem wel te stellen.

Ik heb voor een Dagactiviteitencentrum een database gemaakt.
Het doel van de database is het bijhouden van

de klanten
de gemaakte kunstwerken en
de uitleenregistratie.

Gevoelsmatig zijn er volgens mij wel verbeteringen aan te brengen in de database, het werkt niet echt soepel.
Mag ik jou vragen de database te beoordelen en aanwijzingen te geven ter verbetering hiervan.

Voordat ik de database instuur wacht ik eerst jou antwoord af.

met vriendelijke groet,
Jacob
 
Tuurlijk mag dat! Waar is het forum anders voor? Wat mij betreft zijn er ook zat anderen die er zinnige dingen van kunnen zeggen, ik ben uiteraard niet de enige 'expert' :).
 
OctaFish,

Bijgaand de database met het verzoek deze te beoordelen en aan te geven waar de verbeter punten zitten.
Bij voorbaat dank

Jacob
 

Bijlagen

  • Nieuwe gecomprimeerde (gezipte) map.zip
    329,8 KB · Weergaven: 53
OctaFish,

Ben jij nog in de gelegenheid om naar de database te kijken.
Ik begrijp dat het best wel wat (veel) werk is.
Wellicht een idee om per keer een aanpassing of tip/aanwijzing te bespreken.
Met verwijzing naar het deel van de cursus zou m.i ook kun en helpen.

Bij voorbaat dank
Jacob
 
Ik heb er inderdaad al wel naar gekeken, maar nog geen goed oordeel kunnen vormen vanwege tijdgebrek. Maar ik zal er dezer dagen weer een blik op werpen. Wel een paar eerste indrukken:
In de tabel [Kunstcollectie_uitleen] heb je teveel velden. Het is daar genoeg om de velden [Techniek] en [Categorie] te hebben. De overige velden zijn redundant en zorgen er alleen maar voor dat er verkeerde data in de tabel kan komen te staan. Want wie houdt je tegen als je in [Techniek] waarde 3 kiest (Gem.Techniek) en in veld [Techniek1] waarde Acrylverf? Niemand... Je hoeft ook alleen maar het sleutelveld op te slaan om de rest er in een query bij te kunnen zetten.
Verder gebruik je keuzelijsten in je tabel, en als je dit forum weet je dat ik daar een nóg grotere hekel aan heb dan aan die voetbalclub uit Amsterdam :) (en dan bedoel ik niet DWS of "De Volewijckers").
 
Goedemiddag OctaFish,


Ik heb de door jou aangegeven wijzigingen aangebracht in de tabel [Kunstcollectie_uitleen]
de aangepaste test-base voeg ik bij.

Ik vraag mij af of de gelegde relaties goed zijn.

groet van
Jacob
 

Bijlagen

  • Nieuwe gecomprimeerde (gezipte) map.zip
    329,8 KB · Weergaven: 67
Als er ook anderen mogen reageren dan een poging van mijn kant. (lange tijd niets met Access gedaan maar goed)
De relaties zijn ongeveer goed alleen klopt er van de indeling van een aantal tabellen nog niet zoveel of het roept in iig vragen op. In algemene zin gebruik logische namen en blijf daar consistent in.
Een tabel Klant_uitleen zou bij mij TblKlanten heten. Kunstcollectie_uitleen heet dan TblKunstcollectie etc. Gebruik in de veldnamen geen leesteken en al helemaal geen exoten als 'v = Uitgeleend' en '? = Onbekend waar'.

In het documentje in kolom A jouw belangrijkste tabellen en in kolom C hoe ik het zou noemen. Over smaken van veldnamen valt te twisten en is vaak een persoonlijke voorkeur. De tabel 'Kunstcollectie_uitleen' zal je even opnieuw moeten opzetten zodat er ipv waarden Id's in komen te staan.
 

Bijlagen

  • Tabellen JacobCats.xlsb
    10,5 KB · Weergaven: 36
De relaties zijn ongeveer goed alleen klopt er van de indeling van een aantal tabellen nog niet zoveel of het roept in iig vragen op.
Laat ik het nu helemaal niet eens zijn met VenA :). De relaties zijn namelijk helemaal niet goed; bij het openen van het Relaties venster zag ik geen enkele relatie met Referentiële Integratie, en dat maakt alle relaties totaal waardeloos. In de zin van: hebben geen enkele waarde. En toen ik de eerste de beste beste relatie wilde aanpassen, bleek dat ik RI niet kón afdwingen, omdat de gegevens niet kloppen in de tabellen. Dan houdt het al snel op natuurlijk.
Kijk naar het veld [Maker] in de tabel [Kunstcollectie_uitleen]; dat is een tekstveld en heb je dus gevuld met namen. Je moet die tabel echter koppelen op het veld IDMaker, en dat is een numeriek veld. Dat gaat dus nooit lukken.
Verder zitten er in deze tabel velden die niet logisch zijn, en waarvan ik het doel ook niet snap. Een schilderij heeft een bepaalde status (uitgeleend, kwijt, verkocht etc.) en daar heb jij allemaal aparte velden voor. Heel slecht idee in mijn ogen. Want nu kun je tegenstrijdige gegevens in één record invullen, en dat zou nu juist het laatste moeten zijn dat je wilt.
 
Beiden bedankt voor jullie reactie,

Ik meen uit de reactie van Octafish te begrijpen dat de opzet van de database niet goed is. Jammer maar het zij zo.

De gestuurde voorbeeldbase is een klein gedeelte van de daadwerkelijke database.
Ik hoop dat ik de bestaande database kan aanpassen zonder deze opnieuw te moeten maken. Maar dat merk ik dan wel.

Ik heb de volgende actie ondernemen

Heb het veld [Maker] in de tabel [Kunstcollectie_uitleen] omgezet in numeriek veld. (na eerst de relatie verwijderd te hebben.) en daarna de tabel gekoppeld op het veld IDMaker, en dat is een numeriek veld.
Met als gevolg dat in de tabel [Kunstcollectie_uitleen] in het veld maker geen enkele informatie meer staat!

Waar gaat het mis
 
nog even het aangepaste bestandje (opgeslagen onder een andere naam dan vorige bijgevoegd.
 

Bijlagen

  • Nieuwe gecomprimeerde (gezipte) map.zip
    329,8 KB · Weergaven: 67
Ik zal er vanavond even naar kijken. Wat er mis gaat, is vermoedelijk dat je geen bijwerkquery hebt uitgevoerd die de ID's overzet zodat de tabellen weer netjes gevuld en gekoppeld zijn.
 
OctaFish,

De eerder meegestuurde database hoeft niet meer behandeld te worden.

Ik ben namelijk begonnen met het opnieuw doornemen van de cursus voor het opzetten van een uitleendatabase.
De reden hiervoor is dat ik uit je antwoorden opmaak dat e.e.a in de huidige base de basis niet goed is.

Ik heb nu geprobeerd om uit de zelfgemaakte bijgevoegde testbase van het het veld [Maker] een nieuwe tabel te maken = is gelukt, so far so good
en verder hoofdstuk 3 van de cursus gevolgd.

Als ik nu de tabel [Kunstcollectie_uitleen] open zie ik in kolom [MakerID] de nummers staan en niet de Namen van de makers.

a) Is dit juist zo niet wat gaat er mis
b) waarom krijg ik de namen niet te zien en hoe kan dit geregeld worden?

NB: het oorspronkelijke veld [Maker] heb ik bewust nog laten staan.
de velden [Techniek] en [Categorie] wil ik op deze zelfde manier wijzigen

JacobBekijk bijlage Helpmij_uitleencentrum3.zip
 
Laatst bewerkt:
Je huidige opzet is helemaal prima wat mij betreft :thumb:. Dat je alleen de nummers ziet in de tabel: perfect! Zou je niet anders moeten willen. vraag b) is dus eigenlijk overbodig, want je doet het optimaal goed. Wil je de namen zien? Dat is logisch. Maar niet in de tabel: dat regel je op het formulier. Daar maak je voor de uitleen keuzelijsten (die je koppelt aan het KlantID) en daarin laat je de namen zien. Je kiest dus een naam, maar slaat het ID op. Kortom: ga zo door :).
 
Inmiddels bij hfdstuk 6 van de cursus.

Heb een formulier met diverse knoppen gemaakt maar loop tegen het volgende aan.
Bij rechtsklikken op een knop (ontwerpweergave) en dan op gebeurtenis opbouwen
verschijnt er een macro scherm ipv het vba scherm.
Hoe kan ik access zo aanpassen dat het vba scherm te zien is.
De knoppen kunnen nu niet worden aangepast.

Bijlage: dbase hfdstk006
 

Bijlagen

  • Hfdstk006.zip
    56,9 KB · Weergaven: 30
Als jij bij een knop op het keuzelijstje klikt in de Eigenschappen (het driehoekje net voor de knop met de 3 puntjes) dan kun je de macro omzetten naar een Gebeurtenisprocedure.
 
OctaFish,

Bedankt voor je zeer snelle reactie.

Als ik de macro omzet naar een gebeurtenisprocedure in dbase hfst006 dan krijg in de vba een heel karig beeld in vergelijking met de zelfde actie
in dbase Accesshelpmij2003.

Zou jij er eens naar willen kijken.

Als voorbeeld heb ik beide dbases toegevoegd

Jacob
 

Bijlagen

  • Hfdstk006.zip
    53,3 KB · Weergaven: 30
  • Access HelpMij 2003.zip
    121,4 KB · Weergaven: 29
Als je in de Eigenschappen van een knop kijkt, zie je voor de knop met de 3 puntjes een keuzelijstje staan. Als je die opent, kun je daaruit de optie <Gebeurtenisprocedure> kiezen. Je raakt dan wel de ingebouwde macro kwijt, maar dat lijkt mij alleen maar een voordeel :).
 
OctaFish,

Ik heb de knoppen in dbase hfstk006 omgezet naar <Gebeurtenisprocedure> met als gevolg dat de knoppen niet meer werken.
Er is geen gebeurtenis opgebouwd in VBA.
Betekent dit nu dat ik voor iedere knop een routine moet aanmaken.

In de dbase AccessHelpmij2003 werd er bij het maken van de knoppen automatisch een VBA routine gemaakt ipv een macro.

Hoe kan ik het voor elkaar krijgen dat dit ook in dbase hfstk006 gebeurt?

Jacob
 
Ja, dat zie je goed. Zodra je een knop omzet naar een gebeurtenis, is de macro weg. De code zelf moet uiteraard nog gemaakt worden. Het klopt dat in de cursus de code automatisch wordt aangemaakt; A2k3 kent geen ingebouwde macro's maar alleen dus VBA code. Als ik code nodig heb van bepaalde knoppen, maar ik ook vaak even een 2k3 db aan, zet daar de knoppen in en kopieer die dan vanuit het VBA venster naar de A2010 database. Dat werkt vaak het snelst.
Het mooie van VBA is dat je heel makkelijk zelf die code kunt maken en aanpassen/uitbreiden. Ik heb bijvoorbeeld vaak deze code bij de knop VolgendRecord:

Code:
Private Sub cmdVolgendRecord_Click()
On Error GoTo Err_cmdVolgendRecord_Click
    DoCmd.GoToRecord , , acNext
    Exit Sub

Err_cmdVolgendRecord_Click:
    On Error Resume Next
    DoCmd.GoToRecord , , acFirst
End Sub

Hiermee ga je, als je aan het eind van de recordset bent (en dus niet verder kunt) automatisch naar het eerste record. Andersom heb ik 'm ook: als je terug gaat, ga je vanaf het eerste record automatisch naar het laatste.
 
OctaFish,

Hartelijk dank voor je reactie.
Op dit moment even weinig tijd om het uit te proberen.
Maar ga er zeker mee aan de slag. Al doende leert men.

Jacob.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan