Tema: Re: Access 2007 VBA klausimukas
Autorius: ziuras
Data: 2010-06-28 06:57:22
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.