> vLastRegNo = DMax("regnr", "sutartys", "Year(data) = " & Year(data))
>
> iNewRegNo = IIf(IsNull(vLastRegNo), 1, vLastRegNo + 1)
vLastRegNo = NZ(DMax("regnr", "sutartys", "Year(data) = " & Year(data)),1, vLastRegNo + 1)
atsirado tokia gera f-ja nz().
"Laimis" <wiela@centras.lt> wrote in message news:i0888t$99c$1@trimpas.omnitel.net...
> Gedikas rašė:
>
>> DMax("[regnr]", "sutartys", "[metai] = Year(Forms!sutartys!data)")
>>
>> Deja rezultatas toks, kad įvedus neegzisuojačių metų "data"
>
> Turbūt įmanoma sukišti ir į vieną eilutę (pasinaudojus iif; nors gautųsi
> kiek griozdiška), bet VBA kodas (data AfterUpdate() event procedūroje)
> galėtų būti toks:
>
> Dim vLastRegNo As Variant
> Dim iNewRegNo As Integer
>
> vLastRegNo = DMax("regnr", "sutartys", "Year(data) = " & Year(data))
>
> iNewRegNo = IIf(IsNull(vLastRegNo), 1, vLastRegNo + 1)
>
> regnr.Value = iNewRegNo
>
>
>> 2001-01-01, Dmax vistiek suskaičiuoja kitų metų regnr, nors teoriškai
>> turėtų grąžint null, jei pagal parametrą nieko nerado.
>
> DMax turbūt elgiasi korektiškai; tavo kriterijaus sąlygoje yra nuoroda į
> Formos elementą/lauką, o ne apibrėžta to elemento/lauko reikšmė; tai
> svarbus skirtumas (nes tada reikia pasukti galvą, kada visa ši DMax()
> išraiška yra apskaičiuojama ir kokią reikšmę ji pasiima iš
> Forms!sutartys!data), ar neužsicirkuliuoja...).
> Turėtų būti (taip siūloma konstruoti DMax išraiškas ir pačiame DMax
> aprašyme, pavyzdžiuose):
>
> DMax("[regnr]", "sutartys", "[metai] = " & Year(Forms!sutartys!data))
>
> tačiau turbūt susidursi su Null reikšmės problema vesdamas naujus metus.