Factuur met meerdere subformulieren lukt niet

Status
Niet open voor verdere reacties.

anietje62

Gebruiker
Lid geworden
1 dec 2006
Berichten
38
Ik probeer een boekhoud/factureringsprogramma te maken in Access.
Na eerst een aantal weken tevergeefs Noordenwind om te vormen (ik vond de layout zo mooi) en daarna nog een tijdje aangemodderd, kwam ik op het forum een voorbeeldje tegen van Octafish over het doornummeren van factuurnummers. De opzet was precies wat ik wilde, dus ik ben daar op gaan voortborduren.
Ik loop nu tegen het volgende aan en ik kom er niet uit.

Bedrijf koopt nieuwe spelletjes van bedrijven en gebruikte van particulieren. Deze worden of doorverkocht of verhuurd (geexploiteerd). Het is me gelukt om een factuur voor de verkoop te maken, maar nu wil ik graag een 2e factuur (of een 2e gedeelte op de factuur), waarbij als artikel alleen de spellen te zien zijn die die exploitant huurt.
Dus bijv. spel A en B worden aan Exploitant 1 verhuurd en Spel C en D aan exploitant 2.
Als ik de factuur voor Exploitant 1 maak, wil ik dat spel A en B getoond worden op de factuurinvoer en spel C en D niet, waarachter ik de opbrengst kan invullen. Op de factuur komen de getallen van het gedeelte verkoop opgeteld bij gedeelte huuropbrengst.

Ik heb query’s gemaakt, geprobeerd te filteren en het lukt me niet. Wie o wie kan me hierbij helpen. Ik heb net VBA ontdekt en kan het redelijk lezen, maar ben verder een leek.

Ik heb het bestand naar rar gecomprimeerd, maar het lukt met niet om 'm in de bijlage toe te voegen, daarom een aantal foto's.Knipsel1.jpgqry explotaite regels.JPGqry factuurregel gewone verkoop.JPGrelaties.JPG

Ik hoop dat iemand me kan helpen.
 
Ik zie toch liever de db, moet ik zeggen, want aan de plaatjes heb ik niet zoveel. Heb je de db wel eerst gecomprimeerd? Dat scheelt al aanzienlijk in de grootte. Je kunt de db met Winrar ook splitsen in bestanden van 100kb of 200kb (volgens mij mag je nu 200kb posten als het om gezipte bestanden gaat), of, als dat ook nog teveel is, een fileshare als wikisend.com gebruiken. Kunnen we hem daar vanaf halen. In het laatste geval hoef je er ook niet zoveel werk van te maken, want dan is de grootte niet meer van belang.
 
Omdat ik geen antwoord op mijn vraag heb gekregen zelf een tussenoplossing gevonden. Voor de experts misschien niet de elegantste maar het werkt wel.

Het betrof 2 typen facturen en het lukte me niet om die werkend op 1 formulier te krijgen. Ik heb nu 2 aparte formulieren met subform gemaakt . Het hoofdformulier van beide is het zelfde, maar 1 filtert eerst de gegevens op exploitant, waarna de factuur op een andere manier berekend wordt.
Het is me helaas nog niet gelukt om daar alleen te artikelen te tonen die op die exploitant van toepassing zijn, maar dat heb ik nu maar voor lief genomen.
 
Je linkje bevat niet de db, maar een wav file. Ik weet niet of dat de bedoeling was? Ik heb je db dus niet, en dan kan ik er ook niet naar kijken :). Wil dat alsnog wel even doen, want je vraag is in essentie heel simpel op te lossen.
 
Hoi Michel,
Ik hoop dat deze link wel werkt: http://wikisend.com/download/116318/boekh1.accdb
Anders laat maar weten, wat ik dan moet plaatsen.
Waar het om gaat is de exploitatie factuur. Ik zou het liefste alleen de spellen erop hebben die die exploitant heeft.
Verder heb ik een aantal kunstgrepen toegepast, op het betreffende formulier (frmfactuurexpl), omdat ik een aantal velden daar niet kon plaatsen (Explfact van tabel persoon en grootboek uit tabel factuur), die ik wel voor de berekening van de factuur nodig had. Als ik ze in het formulier plaatste klapte access er iedere keer uit, hoe ik de tabellen ook verbond of niet verbond.

Weer bedant voor de weer snelle reactie :)
Anita
 
Eerst even wat over de db; die wil niet helemaal kloppen wat mij betreft. Om te beginnen: waarom zitten in de tabel [tblFactuur] de velden [TotaalInclbtw], [TotaalBTW], [TotaalExclBTW] en [BTW]? En waarom in de tabel [tblFactuurregels] de velden [TotaalexBTW] en [TotaalBTW]? Die kunnen allemaal weg, want zijn berekende velden. In [tblFactuur] zet je sowieso niks over bedragen, want die staan al in [tblFactuurregels]. Daar heb je een veld [Aantal] en een veld [Prijs], en meer heb je niet nodig.
Daarentegen mis ik in de tabel [tblArtikel] het veld BTW, en dat heb je nu juist nodig om de BTW te berekenen!

Wat je initiele vraag betreft: die snap ik nog niet helemaal; ik zocht eigenlijk naar 2 formulieren die op 'doorverkocht' of 'verhuurd' zouden filteren, maar die zie ik zo snel niet. Hoe had je die constructie bedacht?
 
Hallo Michel,

Tja, over de constructie heb ik een tijdje zitten denken en ik weet dat het misschien niet correct is.
Ten eerste: in tabel Artikel staat wel een veld BTW. De btw wordt niet over de hele factuur berekend, maar juist per artikel. Op iedere factuur kunnen er artikelen zijn die BTW hoog of Marge zijn.
De constructie met bedragen op zowel factuurregels als factuur kwam omdat ik op het formulier factuur de uiteindelijke bedragen wilde tonen. En daar ook mee moest rekenen om het klantdeel bij exploitaitie te kunnen berekenen. Ik realiseerde me dat dit eigenlijk onnodig is, maar een andere oplossing had ik toen niet. :(


Verder heb ik, na weken vergeefse pogingen om 1 formulier te maken, nu dus ook een 2e form persoon gemaakt: frmpersoonExpl waar al gefilterd kan worden op de exploitanten, en van waaruit formFactuurexpl wordt geopend. Met dit formulier vul ik de tabel factuur (en regels) en inkoop automatisch. En dat is waar ik in mijn laatste bericht op doelde: ik had eigenlijk in dit formulier graag alleen de artikelen die bij die exploitant horen getoond, dus zou er een filter moeten zitten op frm factuurregels en dat is me dus niet gelukt.

Ik weet dat ik ergens denkfouten maak, maar ben er zelf nog niet achter waar het precies zit.

Maar toch alvast bedankt voor het kijken ernaar.
Anita
 
Ik zie in de tabel een veld [ArtikelMargeBTW] met de opties Hoog en Laag. Daar kun je niet mee rekenen :).
 
Nee, dat klopt, Octafish.

Ik gebruik in de 2 formulieren factuurregels een iif functie om deze om te zetten in een getal. De kennis waarvoor ik deze DB maak (en dat ik dus ontzettend heb onderschat), wilde graag Marge etc op de factuur te zien krijgen. Later realiseerde ik me dat ik ook een tabelBTW kon maken met 2 velden naambtw en percbtw. Alleen toen ik het veld BTW in de tabel artikel uit die tabel liet zoeken, kreeg ik de factuurregelforms met geen mogelijkheid meer werkend. Ook Access stopte er dan iedere keer mee, dus toen toch maar teruggegrepen op de bovenstaande methode, die wel werkte.
In tabel factuur sla ik ook de bedragen op, omdat ik op het startformulier een formulier heb, dat de nog niet betaalde bedragen van de facturen toont. Ik besloot om ook de BTW en exl maar meteen in de tabel factuur te zetten, met het idee verwijderen is misschien gemakkelijker dan toevoegen. Zodoende.

Al met al is deze klus dus vele malen groter en uitdagender geworden dan ik van te voren dacht, maar heb er wel veel van geleerd. Nu pruts ik voor het eerst een beetje in de VBA-code en begrijp beter de opmaak/groepering etc van rapporten. Gelukkig soms met hulp van dit forum :D
 
Alleen toen ik het veld BTW in de tabel artikel uit die tabel liet zoeken, kreeg ik de factuurregelforms met geen mogelijkheid meer werkend.
Van dit soort zinnetjes gaan de haren in mijn nek recht overeind staan :). In tabellen horen in mijn ogen geen keuzelijsten thuis; in een tabel moet je altijd kunnen zien wat er aan data is opgeslagen. Dat kun jij nu niet, want je gebruikt een alias. De keuzelijst gebruik je natuurlijk wel op je formulieren.
Sowieso zou ik in de tabel met BTW ook een ID veld opnemen, wat je dan opslaat in de tabel. En een datumveld, zodat je altijd het juiste BTW tarief kunt teruglezen. Want die tarieven willen wel eens wijzigen. En alles moet natuurlijk wel gewoon werkend te krijgen zijn.
 
Je bedoelt met keuzelijsten zoals dat met de BTW nu, dus dat er wel een aparte tabel van moet komen? Ik had idee van Noordenwind en het leek me wel gemakkelijk.
Heb je enig idee, waarom het formulier niet werkte toen ik de btw aan een tabel koppelde?

Anita
 
Zonder de db te zien is moeilijk te zeggen waarom iets niet werkt. Meestal komt dat doordat je de verkeerde waarde opslaat. Dus een tekst in een getalveld of andersom. Meestal maak ik, als ik een veld vervang, eerst het nieuwe veld aan in de tabel, en vul ik in de brontabel de nieuwe gegevens aan. Dus in de tabel BTW staat dan een ID veld, een omschrijving (Hoog, Laag) en een percentage. Jij hebt nu in Factuur een tekstveld staan met Hoog/Laag en daar komt dus eerst een extra veld bij (BTW_ID of zo). Dat is dus een numeriek veld.
De bedoeling is dan dat je dat veld BTW_ID gaat vullen met het ID uit BTW. Alleen: dat kun je niet zo koppelen, wat je straks wel wilt doen. Maar omdat je de oude velden nog hebt, die wél te koppelen zijn, maak je een bijwerk query waarbij je dus de oorspronkelijke velden gebruikt voor de koppeling. En het veld BTW_ID vul je dan met het ID uit BTW. De query draai je dan één keer en dan zijn alle BTW_ID velden gevuld met het juiste record. Nu kun je in Factuur het oude koppelveld verwijderen, en in je Relaties de BTW tabel koppelen aan Factuur op basis van het veld BTW_ID.
 
wie helpt me verder

Bekijk bijlage DbtestArtikel.rar

Het is me uiteindelijk gelukt om alle keuzelijsten te veranderen aparte tabellen en deze ook werkend op de factuur en Inkoop te krijgen. Het lukte eerst denk ik niet, omdat ik het “oude” veld op het formulier liet staan en dit niet verving door een nieuw veld.

Maar weer on-topic.
Ik heb in de bijlage een uitgeklede db staan, wat mijn probleem duidelijker laat zien. (Ik hoop tenminste dat dit gelukt is)
Op het formulier Klant, heb ik 3 subform. Query Artikel, Factuur en Verkoop. Het subform query artikel laat alleen de artikelen zien die bij die klant horen. Ik zou ook graag willen dat op de subform Factuur en Inkoop bij díe klant ook alleen zijn artikelen getoond worden.
De subformulieren Factuur en Inkoop moeten dus op een of andere manier gefilterd worden mbv klantId en dát lukt me nu dus steeds niet. Heb al allerhande query’s uitgeprobeerd, maar helaas.
Wie weet er raad?
Alvast bedankt, Anita
 
Ik zal er vanavond een blik op werpen. Tenzij iemand me voor is natuurlijk :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan