Klanten met een bestelling zoeken op datum

Status
Niet open voor verdere reacties.

DriesBl

Nieuwe gebruiker
Lid geworden
10 apr 2016
Berichten
2
Beste,


Na enkele uren zoeken geraak ik er maar niet, ook hier vond ik geen antwoord (wellicht zoek ik met de verkeerde term).
Ik zit met het volgende probleem.
Ik heb een database.
De database bevat:
Tabel Klanten --> een reeks van klanten
Tabel Producten --> reeks van producten
Tabel Bestelling --> is een combo van de twee
Deze laatste wordt aangevuld vanuit een formulier met een subformulier.
Het hoofd formulier geeft me info over de klanten (voornaam, achternaam, adres ...)
Hierin heb ik een keuzelijst aangemaakt om te kunnen zoeken op klantnaam.
In het subformulier vind je een oplijsting terug van de bestelling die die klant maakte.

Nu zou ik in het hoofdformulier een datum willen kunnen ingeven die mij vervolgens enkel de records (=klanten) geeft die op de ingegeven dag een bestelling(en) hebben gemaakt.

Is dit mogelijk zonder over te stappen met VBA?
Mijn voorkeur gaat naar zonder VBA, maar als dit niet mogelijk is, is de oplossing met VBA ook goed.
Het doel heiligt immers de middel :D

Ik heb geprobeerd een acces voorbeeld bij deze e-mail te steken maar dat gaf een foutmelding. Ik probeer het nog eens later.
Alvast bedankt,

Gr. Dries
 
Hallo Dries, allereerst welkom bij HelpMij! Je vraag zou vrij simpel moeten kunnen worden opgelost, want redelijk standaard. Maar ik zie, als ik je vraag zo lees, wel een probleem: ik mis een tabel! En ik vind je formulier niet geweldig.

Om met het eerste te beginnen: tenzij al je bestellingen altijd maar uit één artikel bestaan, heb je nog een tabel tBestelRegels nodig. Deze koppel je middels het BestelID aan tBestellingen, en daarin neem je ook het veld ProductID op. Dat zet je dus niet in tBestellingen. Evenals de velden Aantal en Prijs.
Dan nu het formulier. Voor bestellingen maak je een hoofdformulier, met daarin de keuzelijst voor de klant, en een subformulier met daarin de bestelde artikelen. In dat formulier zit een besteldatum en daar kun je verder prima op filteren.

Access gebruiken zonder programmeren of macro's kan wel, maar je ontzegt jezelf een hoop gebruikersgemak. Filteren kan bijvoorbeeld door rechts te klikken op een datum en die datum te filteren. Maar echt handig is dat allemaal niet.
Met de wizard kun je nog wel wat taken automatiseren; je krijgt dan vaak ingesloten macro's waar je niet zo bar veel mee kan. Het. Loont dus om je a) te verdiepen in hoe je een database opzet en b) hoe je die optimaal gebruikt.
 
Goede avond,

Mercie voor het onthaal. Je slaat de nagel op de kop met te zeggen dat ik me moet verdiepen in VBA.
Op de moment schiet ik daar nog in te kort, maar ik heb niet voldoende tijd om dit nu op punt te stellen.
Het staat alleszins op men ToDo lijst.
Maar alle begin is moeilijk :)

HEt probleem, een klant heeft inderdaad per moment (datum/tijd) de mogelijkheid meer producten te gelijk te bestellen.
M.a.w. er zijn inderdaad meer bestelregels in één bestelformulier.

Dus als ik het goed begrijp heb ik dan een tabel te kort.
TblBestelregel bevat:
- Product ID
- BestelID
- aantal
(prijs zit wellicht onder tblProduct)
TblBestelling bevat:
- KlantID

Ik zag het eerst niet maar nu zie ik inderdaad al ergens de noodzaak.
Ik ga dit proberen, eens zien of ik eruit geraak.

Alvast bedankt

Onder bestel
 
Om je een beetje op weg te help: bekijk welke gegevens in een bestelling in elke regel terugkomen. Als je, omdat je meerdere artikelen tegelijk kunt bestellen, in elke bestelregel een (dus herhaald) bestelnummer moet invoeren en een besteldatum en een klantnummer en ga zo maar door, dan horen die herhalende gegevens niet thuis in de tabel Bestelregels, maar moet je daar een aparte tabel voor bedenken. De tabel Bestellingen dus. En dat soort gegevensgroepen kom je dan best vaak tegen!

Een veld [Prijs] is een beetje een buitenbeetje; de prijs van een artikel sla je inderdaad op in de tabel tblProduct, maar die prijs is doorgaans dynamisch. Ergo: de prijs verandert nog wel eens. En je kunt dat veld dus niet zomaar koppelen in de tabel Tabelregels, omdat je dan bij elke prijsmutatie een andere prijs in je bestelling ziet. En dat pikt de belasting natuurlijk niet. Voor dat probleem zijn verschillende oplossingen denkbaar, waarvan de makkelijkste is: sla de prijs van een artikel op in de tabel Tabelregels. Je moet de prijs natuurlijk wél uit de tabel tblProduct halen, want je wilt hem wel opslaan. De oplossing is simpel te bouwen, want in je bestelling vul je het veld [Prijs] dan vanuit de keuzelijst cboProduct. En op die manier heb je het simpel opgelost: als je een bestelling maakt, haal je altijd de actieve prijs op. Verandert de prijs, dan zie je dus in je nieuwe bestellingen de nieuwe prijs.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan