vLastRegNo = NZ(DMax("regnr", "sutartys", "Year([metai]) = " & Year(data)),1, vLastRegNo + 1)
"ziuras" <ziuras@ziuras.lt> wrote in message news:i096eh$rnl$1@trimpas.omnitel.net...
>> 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.