Database met Reserveringen

Status
Niet open voor verdere reacties.

Europeanmind

Gebruiker
Lid geworden
9 dec 2010
Berichten
58
Ik heb vandaag een begin gemaakt aan mijn database die klanten kan opslaan en reserveringen en facturen moet gaan kunnen maken.

Met behulp van Query's kan ik nu al klanten toevoegen en Auto's toevoegen.
Waar ik nu tegenaan loop is dat ik reserveringen moet kunnen bewerken en verwijderen en hetzelfde met klanten , ik heb query's gemaakt maar ik kom er niet helemaal uit :confused:

http://www.filefront.com/17886862/Database.zip

Dat is wat ik tot nu toe heb gemaakt ( sommige knoppen moet ik nog aanpassen voor formulier schakelingen )
 
De db had je gewoon naar HelpMij kunnen uploaden, want hij zit nog keurig onder de 100kb :) Maar dat is verder niet zo belangrijk natuurlijk.
Laten we het eens over je programma hebben: hoe ziet je uitleenprocedure er uit? Ik ben een beetje confuus door de tabellen die je hebt gemaakt: zo heb je een tabel [Reservering] en een tabel [Nieuwe Reservering]. Wat is daar de bedoeling van? Idem dito met [Auto Uitlenen] en [Auto Inname]... Ik krijg het sterke vermoeden dat je nog niet helemaal door hebt hoe een reservering werkt.... Een auto uitlenen is namelijk een transactie die je in één record in één tabel kunt vastleggen. Daarbij heb je een datum/tijd van uitlenen, en een datum/tijd van inname. Door daar twee tabellen van te maken, maak je het jezelf onnodig lastig. Hetzelfde geldt voor de tabel [Klanten]. Waarom een extra tabel met [Nieuwe klant]?
 
De db had je gewoon naar HelpMij kunnen uploaden, want hij zit nog keurig onder de 100kb :) Maar dat is verder niet zo belangrijk natuurlijk.
Laten we het eens over je programma hebben: hoe ziet je uitleenprocedure er uit? Ik ben een beetje confuus door de tabellen die je hebt gemaakt: zo heb je een tabel [Reservering] en een tabel [Nieuwe Reservering]. Wat is daar de bedoeling van? Idem dito met [Auto Uitlenen] en [Auto Inname]... Ik krijg het sterke vermoeden dat je nog niet helemaal door hebt hoe een reservering werkt.... Een auto uitlenen is namelijk een transactie die je in één record in één tabel kunt vastleggen. Daarbij heb je een datum/tijd van uitlenen, en een datum/tijd van inname. Door daar twee tabellen van te maken, maak je het jezelf onnodig lastig. Hetzelfde geldt voor de tabel [Klanten]. Waarom een extra tabel met [Nieuwe klant]?

Ik heb inderdaad meerdere tabellen gemaakt omdat ik de query van een tabel bijv Query Klant Toevoegen op het Formulier Klant Toevoegen wou gebruiken.
Als ik alleen van de tabel klanten een query zou maken en die zou gebruiken in Klant Toevoegen formulier zou ik in de war komen
 
Maar door de huidige aanpak ga je straks nog veel meer in de war raken ;) Beter is het om eerst alle stappen logisch te bedenken, en daarop de rest te baseren. Je queries (en dus ook je formulieren) zijn al gebaseerd op (in beginsel dus) verkeerde tabellen. Dat wordt alleen nog maar vervelender als je straks echt structuur in de db wilt gaan aanbrengen. Ik zou zeggen: stop met de huidige opzet, doe even een pas naar achteren, en ga eerst eens nadenken over de processen. Als je dat een beetje helder hebt, ga je die processen omzetten naar tabellen, en daar baseer je dan je formulieren op. Vergeet dus voorlopig alles wat je nu hebt gemaakt. Behalve de hoofdtabellen.
Dus alle tabellen waar de naam Nieuw, Toevoegen, Inname en Uitlenen in zitten, moet je rücksichtlos weggooien. En dat alles onder het motto: beter ten halve gekeerd dan ten hele gedwaald!
 
Maar door de huidige aanpak ga je straks nog veel meer in de war raken ;) Beter is het om eerst alle stappen logisch te bedenken, en daarop de rest te baseren. Je queries (en dus ook je formulieren) zijn al gebaseerd op (in beginsel dus) verkeerde tabellen. Dat wordt alleen nog maar vervelender als je straks echt structuur in de db wilt gaan aanbrengen. Ik zou zeggen: stop met de huidige opzet, doe even een pas naar achteren, en ga eerst eens nadenken over de processen. Als je dat een beetje helder hebt, ga je die processen omzetten naar tabellen, en daar baseer je dan je formulieren op. Vergeet dus voorlopig alles wat je nu hebt gemaakt. Behalve de hoofdtabellen.
Dus alle tabellen waar de naam Nieuw, Toevoegen, Inname en Uitlenen in zitten, moet je rücksichtlos weggooien. En dat alles onder het motto: beter ten halve gekeerd dan ten hele gedwaald!

Zoiets dacht ik al ja :p
Dus bijv. Tabel Klanten , Facturen , Auto's , Reserveringen.
En dan ook een soort van Klantnummer aan een nieuwe reservering en klant binden.
Alleen als ik dan een query ga maken van de tabel Klanten waarvan de Sleutel Klantnummer is hoe stel of maak ik het dan zo dat hij automatisch een nieuw klantnummer bij elk nieuw record in de query doet :o

~Zowiezo ff de tabellen ff verwijderen ;p
 
Je denkt met te grote stappen.... Je moet de tabel Reserveringen als basis gebruiken voor je activiteiten. Daar kun je nog wat tabellen aan koppelen als je per reservering meerdere gegevens op wilt slaan; dat kan ik zo niet beoordelen. (Dat bedoel ik dus met nadenken over de processen.) Bijvoorbeeld: mag iemand één reservering maken voor 3 auto's tegelijk? Of maak je daar 3 reserveringen van? Die vraag heeft al behoorlijke consequenties voor je database. Dezelfde vraag voor de facturen: maak je voor elke reservering een aparte factuur, of mag je ook verzamelfacturen maken? Bedrijven die veel huren per maand, vinden een verzamelfactuur een stuk prettiger als al die losse factuurtjes.... Bovendien kun je dan bijvoorbeeld quantumkortingen doorberekenen.

Als je dat hebt doordacht, en je hebt een formulier voor je reserveringen, dan wil je, als er een nieuwe klant voor de balie staat, die snel kunnen toevoegen. Maar een bestaande klant wil je natuurlijk snel kunnen opzoeken, zodat je die zo snel mogelijk hebt afgehandeld. Daarvoor maak je op je formulier een keuzelijst op basis van de tabel Klanten (ja, ééna tabel volstaat ;) ). Staat de klant er niet in, dan zorgt Access ervoor dat je het klantenformulier opent, zodat je de nieuwe klant kunt invoeren. Sluit je dat formulier, dan ga je verder met je reservering. Dat idee dus...
 
Nogmaals de tip dat je kleine zipjes gewoon via HelpMij kunt uploaden; scheelt in ieder geval voor ons wat extra venstertjes. Of heb je aandelen? ;)
Een eerste blik: je hebt nu weer iets te rigoreus gesnoeid; zo is de tabel Facturen verdwenen, en heb je in de tabel Reserveringen een veld Factuurnummer opgenomen. Dat moet precies andersom: in een tabel Facturen neem je een Reserveringsnummer op.
 
Nogmaals de tip dat je kleine zipjes gewoon via HelpMij kunt uploaden; scheelt in ieder geval voor ons wat extra venstertjes. Of heb je aandelen? ;)
Een eerste blik: je hebt nu weer iets te rigoreus gesnoeid; zo is de tabel Facturen verdwenen, en heb je in de tabel Reserveringen een veld Factuurnummer opgenomen. Dat moet precies andersom: in een tabel Facturen neem je een Reserveringsnummer op.

Ok ^^ en nee ik heb geen aandelen maar ik zal voortaan het hier uploaden
en ik was nog niet aan de tabel Facturen begonnen :P
 
Ik zou zeggen: ga er even rustig mee stoeien, en heb je vragen, dan zien we ze wel!
 
Wat ik nu heb gemaakt is al aardig goed voor het project wat ik moet doen.
Daar heb ik zo mijn vraagtekens bij ;)
Kijk eens naar mijn voorbeeldje; en dan naar het formulier [Auto Menu]. Om te beginnen heb ik alle dubbele formulieren verwijderd; je kunt namelijk de meeste dingen in één formulier doen. Je regelt de mogelijkheden van het formulier namelijk al op de knop van je hoofdformulier. Zo kun je met de knop <Auto toevoegen> een record toevoegen m.b.v. het formulier [Formulier Auto's], en met de knop <Auto's bewerken> kun je alleen bewerken. En niet toevoegen. Alles is op het formulier zelf geregeld; de knoppen zorgen er alleen voor dat je in de juiste modus terecht komt.

Ook heb ik je facturentabel er weer bijgezet, aangepast en een extra tabel gemaakt.
Voordat je overigens aan formulieren begint, kun je beter eerst je structuur op orde hebben; goede kans dat je namelijk van voren af aan kan beginnen als je ontwerp in orde is... Je hebt nu al een aantal formulieren voor niks gemaakt, omdat ze a) niet nodig zijn, en b) verkeerd gemaakt/gekoppeld. Hetzelfde geldt voor je queries: het gros is niet nodig. Nogmaals: denk eerst goed na over wat je eigenlijk wilt gaan doen; maak dan de (tabellen)structuur, en ga dan pas aan je formulieren beginnen. Dat is echt de laatste stap...
 

Bijlagen

Hmm dit is moeilijk om over na te denken.
Maar wat je zegt klopt wel ja , alleen om een structuur te bedenken van zo'n programma van te voren is al een moelijke klus ;/
In dit geval een auto verhuur database
 
Ik heb nu een database met 2 formulieren die klanten toevoegt , auto's bewerkt en auto's toevoegt. Dit word als goed beschouwd voor het project.

Alleen moet ik nu een formulier / query maken die een reservering maakt , met de gegevens van de tabellen van auto's en reserveringen

Bekijk bijlage Database (2).zip
 
Je kunt beginnen met een formulier te maken op basis van de tabel Reserveringen. Daarop maak je van de tekstvakken [KLantnummer] en [Kenteken] keuzelijsten met opzoekvak, zodat je de klanten en de auto's uit de tabellen kunt kiezen. Als ik jou was zou ik dan ook extra tekstvakken toevoegen voor de overige klantgegevens die je wilt zien op het formulier. De gegevens daarvan haal je uit de keuzelijst cboKlanten. Hetzelfde doe je met de autogegevens; die haal je uiteraard op uit de keuzelijst cboKenteken. Je koppelt een tekstvak aan een keuzelijst door bij Besturingselementbron de volgende formule te gebruiken: =cboKlanten.Column(1). Dit is uiteraar maar een voorbeeldje, bij jou kan de keuzelijst heel anders heten. Het cijfer achter Column(#) is de kolomwaarde uit de keuzelijst - 1; Access geeft de eerste kolom de waarde 0. Dus daar moet je wel rekening mee houden.
 
Je kunt beginnen met een formulier te maken op basis van de tabel Reserveringen. Daarop maak je van de tekstvakken [KLantnummer] en [Kenteken] keuzelijsten met opzoekvak, zodat je de klanten en de auto's uit de tabellen kunt kiezen. Als ik jou was zou ik dan ook extra tekstvakken toevoegen voor de overige klantgegevens die je wilt zien op het formulier. De gegevens daarvan haal je uit de keuzelijst cboKlanten. Hetzelfde doe je met de autogegevens; die haal je uiteraard op uit de keuzelijst cboKenteken. Je koppelt een tekstvak aan een keuzelijst door bij Besturingselementbron de volgende formule te gebruiken: =cboKlanten.Column(1). Dit is uiteraar maar een voorbeeldje, bij jou kan de keuzelijst heel anders heten. Het cijfer achter Column(#) is de kolomwaarde uit de keuzelijst - 1; Access geeft de eerste kolom de waarde 0. Dus daar moet je wel rekening mee houden.

Thanks man dat werkt ^^.

Als ik een factuur zou moeten aanmaken zou ik het op dezelfde manier kunnen doen ?
Ik denk het zelf wel met die elementsbronnen op de formulieren
 
Ik moet nu een rapport maken van de reservering.
Als ik een rapport maak van een reservering ( gebaseerd op de tabel ) dan krijg ik alle gegevens van die tabel is het rapport.

Alleen wil ik nu van 1 klant van de tabel reserveringen een rapport krijgen , werkt dit ook met besturingselementsbronnen ?
Of bijvoorbeeld een keuze lijst met invoegkeuze en dan bijvoorbeel als Klantnummer , en als dan het klantnummer gekozen word de rest van het rapport word ingevuld wat in het zelfde record staat als het klantnummer
 
Als je een rapport wilt op basis van één klant, bijvoorbeeld het huidige record op je formulier, dan moet je het rapport openen met een filter. Er zijn op het forum wel wat voorbeelden te vinden; de vraag komt een paar keer per maand terug ;)
 
Als je een rapport wilt op basis van één klant, bijvoorbeeld het huidige record op je formulier, dan moet je het rapport openen met een filter. Er zijn op het forum wel wat voorbeelden te vinden; de vraag komt een paar keer per maand terug ;)

Klopt , en nog bedankt voor je hulp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan