Goedendag,
Ik ben bezig met een database voor een bibliotheek (wat jullie ondertussen waarschijnlijk al weten). Ik ben bijna klaar, maar de laatste loodjes zijn altijd het zwaarst. Ik zou graag informatie willen invoeren in een query via VBA-code. Ik zal eerst even uitleggen wat de bedoeling is.
Een bibliotheek leent boeken uit. De bibliotheek waar ik de database voor maak, werkt op de volgende manier: Er worden boeken uitgeleend en pas nadat de boeken teruggebracht worden, wordt er berekend hoeveel de klant moet betalen. Deze kosten bedragen (meestal) €0,20 per 2 weken. Af en toe is het vakantie en is de Bibliotheek dicht. In deze tijd is er een ander tarief. In de tabel tVakantietarief kan dat veranderd worden. Uiteindelijk kom ik op de volgende code als ik dit samen voeg en in een tekstvak in het formulier waar de boeken ingeleverd worden (de bibliothecaris kan daar dus zien wat de klant moet betalen):
Deze code werkt zo dat telkens als er een nieuwe klant wordt aangeklikt (en er dus een nieuwe klant komt), het bedrag weer naar 0 wordt gezet. Als dezelfde klant 3 boeken meeneemt, wordt het volgende bedrag bij het vorige bedrag opgeteld en zo komt er een totaal te betalen bedrag voor de klant.
Nu is het de bedoeling dat er een Omzet komt. Eerder deed ik dit door een berekenend bedrag te maken in de tabel waar de Uitleendatums en Inleverdatums opgeslagen worden, deze min elkaar en dat keer 0,2. Daarna heb ik een query gemaakt die dit per week optelt en zo een omzet-overzicht maakt per week. Een probleem is nu dat ik in de berekenende kolom [Bedrag] geen rekening kan houden met het vakantietarief. Ik kan daar namelijk geen gebruik maken van de optie DLookUp wat in een formulier wel kan.
Ik heb een paar opties bedacht om dit op te lossen:
1. Direct vanuit het tekstvak [Tekst57] informatie naar een Query schrijven. Probleem hierbij is dat een query eigenlijk op een tabel gebaseerd moet zijn. Ook kan ik het tekstvak niet op een andere Query baseren (toch?). Het hele formulier is nu namelijk gebaseerd op een Query waar ik de omzet niet bij kan voegen.
2. Op de een of andere manier toch een optie DLookUp zien te vinden in de berekenende kolom [Bedrag]
3. Direct vanuit de VBA-code informatie naar de Query schrijven. Hierbij heb ik natuurlijk ook weer een probleem gevonden: Welke code zou ik moeten gebruiken in de query moet eigenlijk nog steeds op een tabel gebaseerd zijn.
Ik zou natuurlijk een tabel kunnen maken met de Omzet, waardoor een gedeelte van de problemen opgelost is, maar nog steeds niet het hele probleem. Ik heb die tabel nog niet gemaakt, want misschien is er nog een andere optie waarbij ik de hele tabel niet nodig heb.
Alvast hartelijk bedankt!
MVG,
Stef
Ik ben bezig met een database voor een bibliotheek (wat jullie ondertussen waarschijnlijk al weten). Ik ben bijna klaar, maar de laatste loodjes zijn altijd het zwaarst. Ik zou graag informatie willen invoeren in een query via VBA-code. Ik zal eerst even uitleggen wat de bedoeling is.
Een bibliotheek leent boeken uit. De bibliotheek waar ik de database voor maak, werkt op de volgende manier: Er worden boeken uitgeleend en pas nadat de boeken teruggebracht worden, wordt er berekend hoeveel de klant moet betalen. Deze kosten bedragen (meestal) €0,20 per 2 weken. Af en toe is het vakantie en is de Bibliotheek dicht. In deze tijd is er een ander tarief. In de tabel tVakantietarief kan dat veranderd worden. Uiteindelijk kom ik op de volgende code als ik dit samen voeg en in een tekstvak in het formulier waar de boeken ingeleverd worden (de bibliothecaris kan daar dus zien wat de klant moet betalen):
Code:
Dim Var1 As Variant
Dim Var2 As Variant
Dim Var4 As Variant
Dim Var5 As Variant
Var1 = DLookup("[Begin vakantieperiode]", "tVakantietarief")
Var2 = DLookup("[Einde vakantieperiode]", "tVakantietarief")
Var4 = DLookup("[Bedrag in die periode]", "tVakantietarief")
Var5 = DLookup("[Boete]", "qKlanten")
Forms!fBoekenUitleen!Tekst57.Value = Forms!fBoekenUitleen!Tekst57.Value + Var5 + (IIf(Var1 >= (Me.Uitleendatum.Value) And Var2 <= (Me.Innamedatum.Value), Var4 + (0.2 * (Round((DateDiff("ww", [Uitleendatum], [Innamedatum])) - (DateDiff("ww", Var1, Var2))) / 2)), 0.2 * (Round(DateDiff("ww", [Uitleendatum], [Innamedatum])))))
Nu is het de bedoeling dat er een Omzet komt. Eerder deed ik dit door een berekenend bedrag te maken in de tabel waar de Uitleendatums en Inleverdatums opgeslagen worden, deze min elkaar en dat keer 0,2. Daarna heb ik een query gemaakt die dit per week optelt en zo een omzet-overzicht maakt per week. Een probleem is nu dat ik in de berekenende kolom [Bedrag] geen rekening kan houden met het vakantietarief. Ik kan daar namelijk geen gebruik maken van de optie DLookUp wat in een formulier wel kan.
Ik heb een paar opties bedacht om dit op te lossen:
1. Direct vanuit het tekstvak [Tekst57] informatie naar een Query schrijven. Probleem hierbij is dat een query eigenlijk op een tabel gebaseerd moet zijn. Ook kan ik het tekstvak niet op een andere Query baseren (toch?). Het hele formulier is nu namelijk gebaseerd op een Query waar ik de omzet niet bij kan voegen.
2. Op de een of andere manier toch een optie DLookUp zien te vinden in de berekenende kolom [Bedrag]
3. Direct vanuit de VBA-code informatie naar de Query schrijven. Hierbij heb ik natuurlijk ook weer een probleem gevonden: Welke code zou ik moeten gebruiken in de query moet eigenlijk nog steeds op een tabel gebaseerd zijn.
Ik zou natuurlijk een tabel kunnen maken met de Omzet, waardoor een gedeelte van de problemen opgelost is, maar nog steeds niet het hele probleem. Ik heb die tabel nog niet gemaakt, want misschien is er nog een andere optie waarbij ik de hele tabel niet nodig heb.
Alvast hartelijk bedankt!
MVG,
Stef