Checkboxes op subformulier

Status
Niet open voor verdere reacties.

Jasper91

Gebruiker
Lid geworden
10 apr 2011
Berichten
37
Hallo,

Ik heb een database geüpdatet en hier wat extra mogelijkheden in aangebracht voor productbeheer.
Ik heb alleen het volgende probleem:

Ik heb een formulier waar ik per artikel gegevens kan zien en wijzigen.
In dit formulier heb ik ook een subformulier waarin ik kan zien wanneer het artikel voor het laatst besteld is (deze informatie wordt uit een Query met allemaal inkoopopdrachten gefilterd).

In dit subformulier heb ik ook verschillende checkboxes zitten. O.a.;
- PO gemaakt
- Materiaal ontvangen
- Project gesloten

Wat ik graag wil is dat als ik de checkbox "PO gemaakt" op het subformulier aan klik, het aantal onderdelen vanuit de PO worden opgeteld bij een veld in het Productformulier ("In bestelling").
Vervolgens als ik de checkbox "Materiaal Ontvangen" op het subformulier aan klik, het aantal onderdelen vanuit de PO aftrekken van het veld "In bestelling" en optellen bij het veld "In voorraad" en "Gereserveerd".

Ik hoop dat ik het zo mijn wensen een beetje duidelijk heb uitgelegd, en dat jullie me hiermee kunnen helpen.
Als jullie meer info willen moeten jullie maar roepen.

Grt en BvD!
 
En hoe ver ben je daar mee gekomen? Waar loop je op vast?
 
Ik heb bijna geen ervaring met de macro's van access dus heb tot op heden alleen een voorbeeld van internet geprobeerd.
Dit voorbeeld werkt met de volgende code (welke eigenlijk volgens een los invulformulier werkt):

Code onder de checkbox:
Code:
Call Mutatie(Me.Part_nummer, Me.Quantity)

De code in de module:
Code:
Mutatie(Part_nummer As Long, Quantity As long)
    DoCmd.RunSQL "INSERT INTO tblProducts(Bedrijf_Part-nummer,In_stock)"

Ik kreeg bij deze code in het module gedeelte een 3134 error.
Hierop heb ik de namen van de cellen gecontroleerd, de veldspecificatie (numeriek, text etc.) en ook de _ ingevoegd ipv de spaties, maar op deze error liep ik vast.
 
De Insert doet op dit moment niks, want je geeft geen VALUES mee. Dus valt er niks toe te voegen.

Code:
Mutatie(Part_nummer As Long, Quantity As long)
    DoCmd.RunSQL "INSERT INTO tblProducts(Bedrijf_Part-nummer,In_stock) VALUES(Part_nummer, Quantity)"
 
Dankjewel!
Na wat zoeken naar de goede notatie voor de veldnamen ben ik zo al een heel stuk verder.

Dit is mijn huidige code:
Code:
Mutatie(Part_nummer As Long, Quantity As Long)
DoCmd.RunSQL "INSERT INTO tblProducts([Bedrijf Part Nr],[In stock]) VALUES(Bedrijf_Part_Nr, Quantity)"

Ik zie alleen nu pas dat hij een nieuwe regel in de table tblProducts wilt toevoegen, terwijl ik alleen wil dat hij het veld "In stock" wijzigt.

Ook vraagt hij om "Bedrijf_Part_Nr" en om "Quantity" en moet ik deze handmatig invullen.
Ondanks de "me." functie pakt hij deze dus niet uit de query.
 
Wijzigen van een record doe je met UPDATE, en niet met INSERT INTO. Dat laatste gebruik je inderdaad als je een nieuw record wilt toevoegen.
Maak, voor je eigen gemak, een Bijwerkquery als voorbeeld, en pas de code aan.
 
Super dankjewel!
Ik heb voorlopig nog 1 vraagje. Met de bijwerkquery die ik nu heb gemaakt update hij alle items met het betreffende part nummer.
Hij telt dus alle purchase order hoeveelheden bij elkaar op.
Ik wil echter dat hij alleen de record bijwerkt waarvan het vinkje wordt aangeklikt. Is dat mogelijk?
 
Kwestie van een extra criterium gebruiken in de UPDATE query.
 
Maar kun je me aangeven welk criterium?
Ik heb geprobeerd:

Code:
[tbl PurchaseOrders]![Purchase-ID]=[tbl PurchaseOrders]![Purchase-ID]

Maar dat werkte niet
 
Ik kan de hele database natuurlijk niet uploaden en i.v.m. de inhoud en vele verwijzingen lukt eht me ook niet meteen om een uitgeklede versie te uploaden (anders had ik dat al gedaan).
Om deze reden heb ik een printscreen van de ontwerpweergave bijgevoegd. Kun je hier wat wijzer uit worden?
Printscreen Update Query.JPG
 
De complete SQL code kun je met de knop SQL kopiëren. Nu zie ik alleen dat je een criterium hebt gemaakt op hetzelfde veld, en dat zal niet zoveel verschil maken. Dat is inderdaad de code die je hierboven hebt gepost. Een Ja/Nee veld filter je op de waarden Waar/Onwaar, -1/0 of Ja/Nee. Niet op zichzelf.
 
Ahh, ik heb de knop gevonden! Dat wist ik nog neit dat het zo kon.
Hierbij de code:
Code:
UPDATE tblProducts, [Tbl PurchaseOrders] SET tblProducts.[In stock] = [tblProducts]![In stock]+[Tbl PurchaseOrders]![Quantity]
WHERE ((([tblProducts]![Bedrijf Item Nr])=[Tbl PurchaseOrders]![Bedrijf Item Nr]) AND (([Tbl PurchaseOrders]![Purchase-ID])=[Tbl PurchaseOrders]![Purchase-ID]));

Het "Purchase-ID" is een autonummering veld
Het "Bedrijf Item Nr" is een textveld
Het "In Stock" is een textveld
Het "Quantity" is een numeriek veld
 
Ik heb het nu tijdelijk even op deze manier opgelost:

Door de checkbox "Materiaal ontvangen" aan te klikken laat ik de Query lopen.
Deze query heeft de volgende code:
Code:
UPDATE tblProducts, [Tbl PurchaseOrders] SET tblProducts.[In stock] = [tblProducts]![In stock]+[Tbl PurchaseOrders]![Quantity]
WHERE ((([tblProducts]![Bedrijf Item Nr])=[Tbl PurchaseOrders]![Bedrijf Item Nr]) AND (([Tbl PurchaseOrders]![Purchase-ID])=[PurchaseID]));

Het veld "PurchaseID" bestaat niet, maar hierdoor kan men het daadwerkelijke Purchase-ID invullen waardoor de macro wel werkt.

Ik ben nogsteeds opzoek naar de automatische oplossing hiervoor.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan