[Access] Bestellijsten maken

Pagina: 1
Acties:
  • 452 views sinds 30-01-2008
  • Reageer

  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Ik heb een database gemaakt naar aanleiding van een opdracht voor mijn studie Bedrijfseconomie. In deze database heb ik een order systeem verwerkt. Echter voor het bedrijf is het ook van belang dat er weer genoeg voorraad is om te kunnen voldoen aan de orders die binnen komen. Er word dan ook van mij gevraagd of ik een bestellijst wil maken zodat snel een overzicht beschikbaar is van de producten die besteld moeten worden. Hier is dus ook mijn probleem.

Voor de bestellijst zijn een aantal dingen van belang:
  • Actuele voorraad + bestellingen bij de leveranciers wanneer dit kleiner is dan het bestelniveau per artikel dient er bij besteld te worden
  • Zodra een artikel bijbesteld moet worden dient deze op de bestellijst geplaatst te worden.
Ik heb in de database aangegeven wat precies de actuele voorraad, bestellingen bij de leveranciers zijn en wat het bestelniveau is per artikel. Echter het maken van de bestellijst lukt mij niet. Ik heb het geprobeert om het via Query's op te lossen maar dit werkt niet. Daarmee rekend hij alleen het verschil uit en krijg ik geen goede output om een bestellijst te maken.

Het grote probleem is dat ik hier op mijn opleiding nimmer mee geconfronteerd ben. Ik leer wel wat access dingen etc zoals formulieren maken maar nimmer ben ik aanraking geweest met het VBA achtige programmeer werk om dit voor elkaar te krijgen. Ook mijn docent, die mij de opdracht gaf, weet niet hoe hij dit moet doen.

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Wat voor datamodel hebben we het over? Dit klinkt op zich als iets dat prima met een query op t elossen moet zijn, namelijk. Op voorwaarde dat het datamodel werkbaar is :)

Uitgaande van een tabel met artikelen waar de huidige voorraad instaat, evenals de minimumvoorraad, alsmede een tabel met bestelregels (met daarin iig artikel en aantal besteld), zou je uitkomen op iets in de trant van:
SQL:
1
2
3
Select A.artikel, A.minvoorraad, (A.voorraad + SUM(B.besteld)) as curvrd
from Artikel A join Bestelling B on A.artikel = B.artikel
where curvrd < A.minvoorraad

Uiteraard met voorbehoud dat relevante bestelregels (nog niet ontvangen) geselecteerd moeten worden, en nog wat andere zaken (als er geen bestelregels zijn gaat deze query fout, je moet hem wel even omschrijven naar een LEFT OUTER JOIN, en wat met ifnull spelen ;) )

[ Voor 67% gewijzigd door Dido op 20-03-2006 19:20 ]

Wat betekent mijn avatar?


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 04-04 11:51
Eigenlijk is het toch heel simpel? Iets als:

SELECT artikelnummer, omschrijving, (minimumvoorraad-huidigevoorraad) AS tebestellen FROM tabel WHERE tebestellen > 0

  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Dido schreef op maandag 20 maart 2006 @ 19:14:
Wat voor datamodel hebben we het over? Dit klinkt op zich als iets dat prima met een query op t elossen moet zijn, namelijk. Op voorwaarde dat het datamodel werkbaar is :)
Het datamodel bedoel je daarmee de Relatie-diagram?

ik heb er voor gezorgd dat de informatie die nodig is voor het maken van een bestelling in 1 tabel staan. Maar ik krijg er geen goede query voor om de output te kunnen drukken in een bestellijst.

Aanvulling bij Dido
Ik wardeer je hulp heel erg, maar bij de 2e zin van je uitleg met SQL ben ik de bocht al uit :P. Ik kan dit niet simpel oplossen m.b.v een query die het voor mij doet?

[ Voor 16% gewijzigd door Maximus op 20-03-2006 19:23 ]

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Als je de informatie die je nodig hebt in een tabel hebt staan, wat is dan je probleem :?

En met datamodel bedoel ik alle informatie die ons inzicht verschaft in wat voor tabellen je hebt, wat voor velden daarin staan en wat voor relaties je hebt, want anders blijven we in het wilde weg gokken, natuurlijk.
Maximus schreef op maandag 20 maart 2006 @ 19:19:
Aanvulling bij Dido
Ik wardeer je hulp heel erg, maar bij de 2e zin van je uitleg met SQL ben ik de bocht al uit :P. Ik kan dit niet simpel oplossen m.b.v een query die het voor mij doet?
Erhm. Dat SQL geneuzel wat daar staat is een query.

Wat versta jij onder een query?

Ok, terwijl ik dit typ bedenk ik me dat je wellicht nog nooit op de SQL button hebt gedrukt toen je met de query wizzard bezig was. Doe dat eens, en wees verbaasd ;) Die wizzard poept SQL uit, namelijk.

Overigens, als je het al in een tabel hebt is er toch geen enkel probleem?

[ Voor 53% gewijzigd door Dido op 20-03-2006 19:28 ]

Wat betekent mijn avatar?


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Dido ik heb even een print screen gedaan van zowel de relaties die ik heb in de database alswel de overzichten van velden in mijn tabellen. Misschien dat je er iets uit duidelijk word. En nee :P ik heb nog nooit een SQL iets gezien ;)

http://maximus.linux-box.nl/Dido/

Hier staan alle schema's in.

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Als je in je querywizard rondkijkt zie je rechtsboven een mogelijkheid om naar de (al dan niet gegenereerde) SQL te kijken. Daar kun je zelf dus ook SQL invoeren.

Dat geeft je een heleboel extra mogelijkheden die via de visuele wizard niet of zeer moeilijk te bereiken zijn. Het is dan wel aan te raden eens een SQL tutorial door te nemen. :)

Ah, ik zie nu ook wat staan in de directory.

Vrijwel wat ik net tikte zou de truuk moeten doen.
Overigens moet dit via de wizard ook kunnen, maar dan moet je je formules nog steeds zelf intikken, ben ik bang.

Zal even kijken of ik iets in elkaar krijg wat het zou moeten doen, kijk even of je uberhaupt uit kunt vinden waar je je SQL kwijtkunt (even gechecked, als je een query in designview bekijkt, rechtsboven, staat er SQL.

Wat betekent mijn avatar?


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Misschien handig om even duidelijk te maken wát er niet lukt, want een lijstje uit die tabel trekken met te bestellen goederen is kinderspel. ;) M.a.w. waar zit precies je probleem?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Dido, hartelijk dank alvast dat je er naar wilt kijken

Niesje, ik moet een bestellijst maken maar dat is voor mij geen kinderspel. Ik krijg geen query zo werkend dat hij dat soort gegevens gaat berekenen en daaruit een lijst maakt. Mijn probleem is dus dat ik de data wel heb maar niet hoe ik deze moet verwerken in een bestellijst.

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Zelfs in de wizard lukt me dit nog wel :P

Je hebt alleen tabellen Artikel en Bestelling nodig.

Voor je eigen overzicht, en gebruikmakend van Access' mogelijkheden:

Maak een query "InBestelling", waarin per artikel het totaal aantal in bestelling komt te staan.
code:
1
2
3
4
5
6
Field        Artikelnummer  Aantalbesteld       Afleverdatum    IsNull([Afleverdatum])
Table        Artikel        Bestelling          Bestelling
Total        Group By       Sum                 Where           Where
Show         V              V                     
Criteria                                        < Now()
Or                                                              <> False

In de wizard, dus.

Hiermee kun je verder werken (even geduld :P )

Wat betekent mijn avatar?


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Vervolgens maak je een volgende query die er als volgt uitziet, gebaseerd op tabel Artikel en query InBestelling:
code:
1
2
3
4
5
6
Field        Artikelnummer  TeBestellen: IIf(IsNull([SumOfAantalBesteld]),
                            [Bestelniveau]-[Artikelvoorraad],
                            [Bestelniveau]-[Artikelvoorraad]-[SumofAantalbesteld])
Table        Artikel         
Show         V              V                     
Criteria                    > 0

De iif met isnull zorgt ervoor dat je je te bestellen aantal ook krijgt als er niets in bestelling staat ;)

[ Voor 5% gewijzigd door Dido op 20-03-2006 20:33 ]

Wat betekent mijn avatar?


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Oke ik heb het bovenstaande ingevuld en hierdoor heb ik idd het resultaat dat ik zie hoeveel ik besteld heb als sommage van welk artikelnummer. Nu moet ik alleen nog het geen hebben, bestelling + voorraad > bestelniveau = bij bestellen.

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Da's die tweede ;)

Wat betekent mijn avatar?


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Als het werkt krijg jij mijn stem bij modje van het jaar :D

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
TeBestellen: IIf(IsNull([SumOfAantalBesteld]), [Bestelniveau]-[Artikelvoorraad], [Bestelniveau]-[Artikelvoorraad]-[SumofAantalbesteld])

Kun je deze nog even uitleggen Dido, want als ik dit invoer in de query zegt hij dat het niet mogelijk is? Ik neem hem letterlijk over net als de rest van de input die je me gaf.

Misschien dat je me ook nog kan enlighten welke ik dan mee moet nemen in een bestellijst zodat ik een overzicht krijg van de te bestellen artikelen?

[ Voor 20% gewijzigd door Maximus op 20-03-2006 22:10 ]

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Wat voor fout krijg je? Heb je tabel Artikel en Query InBestelling opgegeven? Het veld [SumOfAantalBesteld] komt namelijk uit die eerste query, die moet dus in de bovenste helft van je wizard staan.

De uitleg"
Het veld "tebestellen" heeft de volgende waarde:
Als "het totaal aantal in bestelling niet gevuld is", Bestelniveau minus Voorraad,
Anders, Bestelniveau minus Voorraad minus Totaal in bestelling.

De >0 zorgt ervoor dat je alleen die artikelen ziet die je ook daadwerkelijk moet bestellen.

Wat betreft de enlightenment: Deze query levert je ee rijtje artikelnummers en het aantal dat je minimaal moet bestellen ;)

Ik heb hem hier perfect werkend staan, dus ergens heb je iets anders gedaan :)

[ Voor 10% gewijzigd door Dido op 20-03-2006 22:23 ]

Wat betekent mijn avatar?


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Dido schreef op maandag 20 maart 2006 @ 22:19:
Wat voor fout krijg je? Heb je tabel Artikel en Query InBestelling opgegeven? Het veld [SumOfAantalBesteld] komt namelijk uit die eerste query, die moet dus in de bovenste helft van je wizard staan.

De uitleg"
Het veld "tebestellen" heeft de volgende waarde:
Als "het totaal aantal in bestelling niet gevuld is", Bestelniveau minus Voorraad,
Anders, Bestelniveau minus Voorraad minus Totaal in bestelling.

De >0 zorgt ervoor dat je alleen die artikelen ziet die je ook daadwerkelijk moet bestellen.

Wat betreft de enlightenment: Deze query levert je ee rijtje artikelnummers en het aantal dat je minimaal moet bestellen ;)

Ik heb hem hier perfect werkend staan, dus ergens heb je iets anders gedaan :)
Ik heb jou deel letterlijk gekopierd in mijn accessdatabase aleen hij blijft zeuren over een ongeldige syntaxis bij de komma's die zijn gebruikt. Ik heb de nederlandse versie van Access. Deze error krijg ik:
De syntaxis van de expressie die U hebt opgegeven is ongeldig
Er ontbreekt een operand of operator, U hebt een ongeldig teken of ongeldige komma opgegeven of U hebt de tekst in de expressies niet tussen aanhalingstekens geplaatst.
Hierdoor krijg ik ook niet mijn gewenste output.

Dit heb ik in de query gezet, het eerste deel lukt van het geen je zei echter deze krijg ik niet werkend:

TeBestellen: IIf(IsNull([SomVanAantalBesteld]), [BestelNiveau]-[ArtikelVoorraad], [BestelNiveau]-[ArtikelVoorraad]-[SomVanAantalbesteld])

Over de komma in bold blijft hij vallen en daardoor kan hij niet verder

[ Voor 15% gewijzigd door Maximus op 21-03-2006 07:36 ]

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • PromoX
  • Registratie: Februari 2002
  • Laatst online: 28-02 18:34

PromoX

Flying solo

Probeer het 's met een ; ipv ,

And I'm the only one and I walk alone.


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:21

Dido

heforshe

Oh, bloedig! Ja, als je de Nederlandse versie gebruikt slikt ie puntkomma's waasrschijnlijk beter dan komma's, ja. :)

Wat betekent mijn avatar?


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 22:31

Maximus

There is no substitute

Topicstarter
Dido schreef op dinsdag 21 maart 2006 @ 10:20:
Oh, bloedig! Ja, als je de Nederlandse versie gebruikt slikt ie puntkomma's waasrschijnlijk beter dan komma's, ja. :)
Na het aanpassen kreeg ik idd geen errors meer. Ik heb nu echter voor product 1 dit ingesteld:

Voorraad = 10
Besteld = 0
Bestelniveau = 20

Maar dan zie ik niet dat bij de query output komt te staan dat het product besteld moet worden.

PhD i.o. | You know what, Stewie, if you don’t like it, go on the Internet and complain.

Pagina: 1