Tema: Access 2007 VBA klausimukas
Autorius: Gedikas
Data: 2010-06-26 13:04:19
Niekiap neišgimdau tokio reikalo.

Yra lentelė "sutartys" ir keletas laukų: "data", "regnr".. kiti nesbarbu.
"regnr" nėra unikalus - jis gali sutapti su kitų metų "regnr", tačiau tais pačiai metais tokio pat regnr būti negali. (sutarties regnr skaitliukas kasmet sukasi iš naujo)...
Darau sutarties registravimo formoje įvykį, kuris aktyvuojasi įvedus sutarties datą (laukas "data"), jis turėtų surast "data" lauke įvestų metų maksimalų "regnr" ir paimt +1.

Va čia ir sustojau. Galiu visa tai padaryt susiformavęs atitinkamą SQL užklausą, susirūšiuot pagal regnr ir imt paskutinę regnr reikšmę + 1, bet norisi papračiau.

Bandžiau formos duomeų šaltinį pakeist į query su papldomu lauku "metai: year([data])", kad turėčiau datao išraišką metais ir VBA afetr update gaudyt "regnr" su Dmax:

DMax("[regnr]", "sutartys", "[metai] = Year(Forms!sutartys!data)")

Deja rezultatas toks, kad įvedus neegzisuojačių metų "data" 2001-01-01, Dmax vistiek suskaičiuoja kitų metų regnr, nors teoriškai turėtų grąžint null, jei pagal parametrą nieko nerado.

Kadangi neesu programuotjas, tai nemuškit į akinius.