gotorecord en recordverwijzing

Status
Niet open voor verdere reacties.

flbos

Gebruiker
Lid geworden
5 feb 2004
Berichten
267
Ik wil gebruikmaken van de functie gotorecord om naar een volgende record op een subformulier te gaan, ik krijg echter de foutmelding dat het formulier niet geopend is. Wat doe ik fout (met of zonder 'me' maakt geen verschil)?

DoCmd.GoToRecord acDataForm, "Me![frmOmzetperkwartaal]", acNext

Verder wil ik in VBA verwijzen naar records om vervolgens met de velden van deze records berekeningen uit te voeren en deze weg te schrijven.

Met de volgende code kan ik van de eerste record de waarde aanpassen bij het veld 'index'.

[frmOmzetperkwartaal].Controls("index") = 4

Ik wil echter iets in de volgende opzet (het gaat steeds om records op het subformulier):

huidigerecord.controls("index") = (huidigerecord -1.controls("index") + huidigerecord - 2.controls("index"))/2

Ik weet echter niet hoe ik de rijverwijzingen voor elkaar moet krijgen, met de help van VBA kom ik er niet uit.

Ook wil ik graag voorwaarde stellen in de trent van (ook hier werk ik weer met hetzelfde subformulier):

if huidigerecord.controls("artikel") = huidigerecord -1.controls("artikel") then ..................

Het lijkt me dat dit mogelijk moet zijn, maar hoe?
 
als ik het zo lees moet het inderdaad mogelijk zijn. Ik kan alleen zo niet goed zeggen wat de oplossing zou kunnen zijn.

als je met subformulieren gaat werken, dan moet je er volgens mij wel rekening mee houden dat je de namen van de formulieren gebruikt!

heb je bijv. een bepaald tekstvak op het huidige blad (ftmTest), dan kan dit met Me.txtTest.Text

wil je ditzelfde tekstvak gebruiken via een ander formulier, dan gebruik je dus frmTest.txtTest.Text

grtz
Herbert
 
Ter informatie:
Ik maak gebruik van een subformulier dat alleen de gegevens uit een tabel bevat. De tabel beslaat dus het hele subformulier.
 
Als je gebruik maakt van subformulieren moet je die wel goed adresseren!

Dat gaat als volgt:
Forms![NaamHoofdFormulier]![NaamSubFormulier].Form

Om een dergelijke expressie te maken heeft Access een hulpmiddeltje, de expression builder.
In een module kun je die starten door met de rechtermuisknop te klikken en vervolgens de optie Build te kiezen. Hiermee kun je dit soort verwijzingen makkelijker maken.
 
Bedankt! Het verwijzen naar het formulier lukt inmiddels, ik kan dus naar het gewenste record gaan. De recordverwijzingen binnen expressies krijg ik echter niet voor elkaar. Ik kan de genoemde expressie builder niet vinden. Ik werk met access 2000 (Nederlandse versie). Kan iemand een voorbeeld geven van een expressie die verwijst naar een recordnummer?
 
Wat bedoel je precies met verwijzen naar een recordnummer en wat wil je daarmee?
 
Wat ik wil

Ik wil rekenen met de waardes uit de verschillende records, zodoende moet ik er in expressies naar kunnen verwijzen. Ik wil bijvoorbeeld het gemiddelde nemen van de waarde in een veld van de huidige record en de waarde van het zelfde veld van de
drie voorgaande records. Op de volgende manier dus:


huidigerecord.Controls("index") = (huidigerecord.controls
("veld") + huidigerecord - 1.controls("veld") +
huidigerecord - 2.controls("veld") + huidigerecord -
3.controls ("veld"))/4

Ik weet echter de juiste syntaxis niet voor deze expressie (of dat het wellicht sowieso op een iets andere manier moet).

Ook wil ik bijvoorbeeld:

IF huidigerecord.Controls("index") = huidigerecord -
1.Controls("index")

THEN huidigerecord.Controls("veld") = 4

ELSE huidigerecord.Controls("veld") = 5

Wat is de functie binnen VBA om naar het huideige record te verwijzen en hoe verwijs ik naar records een (of meerdere) rij(en) verder of terug?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan