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.