Contractwebdatabase, form en subform

Status
Niet open voor verdere reacties.

Robert971

Gebruiker
Lid geworden
6 jul 2012
Berichten
171
Bijgevoegd een bestandje van een contractwebdatabase.

Op tabblad2 (Financieel) van Formulier 'Contracten' is het de bedoeling dat een gebruiker een contractbegroting maakt gewaardeerd tegen Tarief1, Tarief2, Tarief3, Tarief4 of Tarief5 (is keuzelijst 'Tarief' hoofdformulier).

Bij ieder ander gekozen tarief (1,2,3,4,5) in het hoofdformulier 'Contracten' moet een ander uurtarief worden berekend in het Subformulier 'ContractFinancieel'. Dit lukt opzich prima, bij bijv. keuze tarief1 in het hoofdformulier komt nu ook een ander tarief te staan in het subformulier (contractbegroting) voor de verschillende gekozen categorieën door de gebruiker.

De keuzelijst (met categorieën in het subformulier) houdt dus rekening met het gekozen tarief in het hoofdformulier.

De functionaliteit die ik graag zou toevoegen is op het moment dat de keuzelijst in het hoofdformulier muteert naar een ander tarief (bijv. van tarief1 naar tarief2) dat het uurtarief automatisch meeveranderd in het subformulier 'ContractFinancieel' bij de behorende categorie (1,2, etc.)..

Voorbeeld:
-Keuze door gebruiker op tabblad financieel (formulier Contracten) voor Tarief1(Keuzelijst tarief) levert uurtarief 100 op bij Categorie1(keuzelijstCategorie Contractgebroting suformulier), Op moment dat zonder iets te wijzigen in het subformulier de gebruiker nu de keuzelijst 'Tarief in het hoofdformulier' op Tarief2 zet moet automatisch het uurtarief 200 in de contractbegroting komen te staan bij Categorie1.
Dit lukt helaas nog niet...

Zie ook bijgevoegde ZipFile.
Bvd, voor hulp.
 

Bijlagen

Wat heb je gedaan met je db? Ik kom niet in de ontwerpweergave, en zo'n beetje alle gebeurtenissen zijn onbereikbaar (zeg maar weg). Formulieren importeren in een andere db kan ook niet, en exporteren ook niet!
 
Laatst bewerkt:
Dat is vreemd, vanuit hier krijg ik hem wel geopend vanuit het helpmij.forum. Bij deze een nieuwe poging...Laat even weten of het lukt, misschien moet k het bestand op een andere manier inpakken anders..Het is wel een webdatabase, dus formulieren en tabellen in principe alleen te openen in gegevensblad of indelingsweergave..
 

Bijlagen

Zat waarschijnlijk beveiliging op...is er nu afgehaald, wellicht lukt het om dit bestand wel te openen
 

Bijlagen

Je geeft zelf al aan wat het probleem is:
Het is wel een webdatabase, dus formulieren en tabellen in principe alleen te openen in gegevensblad of indelingsweergave..
Ik kan hem verder prima openen, maar kom dus inderdaad niet in de Ontwerpweergave. En al helemaal niet bij de gebeurtenissen die je zou moeten kunnen maken. Je kunt alleen een macrootje maken bij de gebeurtenis <Na bijwerken>. En macro's is 'not my cup of tea'. Maar wellicht dat je zelf op de keuzelijst <cboTarief> een macro kan maken die de keuzelijst <RegCat> bijwerkt.
 
Ja klopt, macro's maken kan alleen via het eigenschappenvenster bij 'gebeurtenis na bijwerken', of direct vanuit de tabel. Persoonlijk gaat mijn voorkeur meer uit naar VBA scripts maar helaas werkt de functionaliteit dan niet meer via het web (publicatie database in sharepoint). Heb al een aantal macro's geprobeerd (bijv., na bijwerken cboTarief, 'QueryOpnieuwUitvoeren' van <RegCat>)om <RegCat> te laten bijwerken/onderhouden vanuit <cboTarief> maar steeds foutmeldingen (bijvoorbeeld dat subformulier niet kan worden gevonden die in de macro staat).
 
Als je verwijst naar een object in een subformulier, dan moet je de volledige 'pad'verwijzing gebruiken. Je kunt dus niet volstaan met alleen de naam van de keuzelijst, de naam van het subformulier moet er ook bij.
 
Klopt, hele pad heb ik geprobeerd: [Formulieren]![ContractFinancieel=subform]![RegCat]

Werkt helaas (nog)niet
 
Je subformulier heet anders en niet ContractFinancieel=subform... Je zou dit moeten gebruiken:
Code:
[Formulieren]![ContractFinancieel].form]![RegCat]
 
ContractFinancieel=subform heb ik ook niet als besturingselementnaam gegeven, heb dit zo neergezet om inzichtelijk te maken wat ik als subformulier heb aangemerkt..Had het weergegeven als
Code:
[Formulieren]![ContractFinancieel]![RegCat]
-->deze code voor de besturingselementnaam wordt ook dusdanig automatisch herkend door Access.
heb nu conform bovenstaande code (zoals je hebt aangegeven de gedaante .form] toegevoegd achter ContractFinancieel, code wordt nu zoals je bovenstaand hebt neergezet:

Code:
[Formulieren]![ContractFinancieel].form]![RegCat]
Foutmelding die na deze correctie wordt gegeven:
U hebt in de Visual Basic Procedure verwezen naar een OLE-object, maar het object is geen OLE-object.
 
ook de melding: het automatiseringsobject 'Formulieren' bevindt zich niet in het object
 
Probeer het eens met [Forms]!
 
Tja, het blijft een macro... Ik heb er niet voor niks een gruwelijke hekel aan :). Maar daar ga ik mij toch echt niet in verdiepen; elke keer als ik het Macro ontwerpvenster open zinkt de moed mij in de schoenen, en grijp ik naar de fles whiskey (die gelukkig altijd onder handbereik staat) ;). Mag iemand anders mee helpen dus!
 
Laatst bewerkt:
Toch bedankt voor het meedenken:thumb:. Inderdaad een enorm gedoe met macro's.. Ga het denk ik op een andere manier proberen op te lossen.
Gaat erom dat op de data(records) in het subformulier een refresh wordt gedraaid als het tarief in het hoofdformulier (cboTarief) wijzigt/muteert. Als er veel contractrecords staan in het subformulier is het voor de gebruiker bijna niet te doen om bij wijziging cboTarief in het hoofdformulier elk record van RegCat in het subformulier opnieuw bij te werken/te onderhouden. Denk maar dat k voor een tussenoplossing ga, ik krijg RegCat in het subformulier namelijk niet automatisch bijgewerkt vanuit het hoofdformulier. Door een Knop te plaatsen in het subformulier (met bijschrift 'Refresh') en deze handmatig aan te laten klikken bij wijziging tarief in hoofdformulier, worden de records in het subformulier wel vernieuwd op basis van de tariefwijziging. Het lastige nu is alleen dat je van te voren niet weet hoeveel records in het subformulier staan... Bij de macro kun je wel invoeren 'Naar volgend record gaan' maar je weet niet hoe vaak...Zou zeggen met een variabele oid oplossen maar met macros is dat wat lastiger..Is het misschien ook mogelijk een maximum aantal records in te stellen in een subformulier die de gebruiker kan invullen per hoofdformulier ID om een contractbegroting te maken. Dus bijvoorbeeld bij Id1 van het hoofdformulier kunnen max. 5 records in het subformulier worden gemaakt? Idem voor Id2 in het hoofdformulier.. etc.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan