In een grijs verleden heb ik eens een factuur opgezet voor een vriend met BTW 0, en 19%. Door de jaren heen is de factuur wat complexer geworden en werden de files steeds groter. Uiteindelijk heb ik alle modules die ik had ontwikkeld eenmalig ge-exporteert, daarna bij opstarten van de factuur laten importeren en bij afsluiten van de factuur weer laten removen. Dit werkt goed en als oude facturen bekeken worden gebruiken ze altijd de laatste modules. 300kb files gingen terug naar 40kb.
In de factuur zit een userform. Vele velden maar degene die voor mijn vraag van belang zijn zijn de volgende:
BTW19 en BTW0 (option button). Dit userform is niet geïmporteerd maar gewoon onderdeel van de excel sheet en dit is bewust maar dit zorgt nu even voor een probleempje. Ik heb kortgeleden BTW6 toegevoegd. Niets aan de hand voor nieuwe facturen en hier komt het ... wel voor de oude facturen die nu worden geopend want een bekende fout treedt op: Method or Data Member not found". Dat klop, oude facturen hebben de option button BTW6 niet (maar ze krijgen wel de nieuwste modulen ingelinked die wel er vanuit gaan dat BTW6 bestaat).
De eenvoudige vraag is nu, hoe kan ik dit backwards compatible houden?
In de factuur sla ik de BTW code op als getal en bij het activeren van de form wordt deze gebruikt om de juiste BTWX Data Member of True te zetten zodat getoond wordt met welke BTW er is gerekend.
Dingen waar ik aan heb zitten denken:
Ik dacht dat er een eval functie bestond (VB EXCEL 2002)? Maar deze eenvoudige oplossing krijg ik helaas niet werkend, iemand?
Dus ben ik iets moeilijker gaan zoeken maar hier ontbreekt het mij duidelijk aan kennis. Is er een manier om run-time alle Data Members uit een form krijgen (van het type Option Button) en deze als string te benaderen? Hiermee kan ik vanuit de module kijken welke BTW codes er in de form worden ondersteund. In pseudo
In de factuur zit een userform. Vele velden maar degene die voor mijn vraag van belang zijn zijn de volgende:
BTW19 en BTW0 (option button). Dit userform is niet geïmporteerd maar gewoon onderdeel van de excel sheet en dit is bewust maar dit zorgt nu even voor een probleempje. Ik heb kortgeleden BTW6 toegevoegd. Niets aan de hand voor nieuwe facturen en hier komt het ... wel voor de oude facturen die nu worden geopend want een bekende fout treedt op: Method or Data Member not found". Dat klop, oude facturen hebben de option button BTW6 niet (maar ze krijgen wel de nieuwste modulen ingelinked die wel er vanuit gaan dat BTW6 bestaat).
De eenvoudige vraag is nu, hoe kan ik dit backwards compatible houden?
In de factuur sla ik de BTW code op als getal en bij het activeren van de form wordt deze gebruikt om de juiste BTWX Data Member of True te zetten zodat getoond wordt met welke BTW er is gerekend.
Dingen waar ik aan heb zitten denken:
Ik dacht dat er een eval functie bestond (VB EXCEL 2002)? Maar deze eenvoudige oplossing krijg ik helaas niet werkend, iemand?
Visual Basic:
1
| Eval("FactuurStandard.BTW" + 6 +".Value = True") |
Dus ben ik iets moeilijker gaan zoeken maar hier ontbreekt het mij duidelijk aan kennis. Is er een manier om run-time alle Data Members uit een form krijgen (van het type Option Button) en deze als string te benaderen? Hiermee kan ik vanuit de module kijken welke BTW codes er in de form worden ondersteund. In pseudo
code:
1
2
3
4
| resultaten = geef_alle_BTW_option_button_strings
voor elk resultaat
als BTWcode in factuur ook in resultaat te destileren is
zet Toggle Button voor resultaat op True |
... gecensureerd ...