Update және UpdateIf функциялар

Келесілерге қолданылады: Кенеп бағдарламалары Үлгіге негізделген бағдарламалар

Деректер көзіндегіжазбаларды жаңартады.

Сипаттама

Update Функция

Деректер көзіндегі бүкіл жазбаны ауыстыру үшін функцияны пайдаланыңыз Update . Керісінше, UpdateIf және Патч функциялары жазбадағы бір немесе бірнеше мәндерді өзгертіп, басқа мәндерді жалғыз қалдырады.

Жинақ үшін бүкіл жазба сәйкес келуі керек. Жинақтар қайталанатын жазбаларға рұқсат етеді, сондықтан бірнеше жазбалар сәйкес болуы мүмкін. Жазбаның барлық көшірмелерін жаңарту үшін RemoveFlags.All аргументін пайдалануға болады; әйтпесе жазбаның бір ғана көшірмесі жаңартылады.

Егер деректер көзі бағанның мәнін автоматты түрде жасаса, сол бағанның мәнін қайта растау керек.

UpdateIf Функция

Бір немесе бірнеше шарттарға сәйкес келетін бір немесе бірнеше жазбалардағы бір немесе бірнеше мәндерді өзгерту үшін функцияны пайдаланыңыз UpdateIf . Шарт true немесе false мәніне әкелетін кез келген формула болуы мүмкін және деректер көзінің бағандарына атау бойынша сілтеме жасай алады. Функция әр жазбаның шартын есептейді және нәтиже true болатын кез келген жазбаны өзгертеді.

Өзгертуді көрсету үшін жаңа сипат мәндерін қамтитын өзгерту жазбасын пайдаланыңыз. Егер осы өзгеріс жазбасын ирек жақшалармен қамтамасыз етсеңіз, сипат формулалары өзгертіліп жатқан жазбаның сипаттарына сілтеме жасай алады. Бұл мінез-құлықты формула негізінде жазбаларды өзгерту үшін пайдалана аласыз.

Ұқсас UpdateIf, басқа бағандарға әсер етпей-ақ жазбаның белгілі бір бағандарын өзгерту үшін Патч функциясын пайдалануға болады.

Екеуі Update де және UpdateIf өзгертілген деректер көзін кесте ретінде қайтарыңыз. Функциялардың кез келгенін мінез-құлық формуласында пайдалану керек.

Өкіл

Бұл функциялар деректер көзіне берілмейді. Алайда, UpdateIf және RemoveIf 500/2000 жазбаларының шегіне дейін өкілеттілікті модельдеу үшін жергілікті түрде жұмыс істейді. Олар 500/2000 жазбаларының өкілетті емес шегінен асып түсетін жазбаларды біртіндеп төмендетеді. If шартына сәйкес келетін жазбалар жиналады. Әдетте, ең көп дегенде 500/2000 жазбалар бөлек жиналады, содан кейін әр орындау үшін өзгертіледі. Алайда, қолданыстағы жергілікті деректер кэші үлкен болса, қосымша жазбалар жаңартылуы мүмкін, өйткені функция бағалау үшін көбірек жазбаларға қол жеткізе алады. Деректер көзінің бастапқы бөлігі ғана қалпына келтіріледі, содан кейін функция қолданылады. Бұл толық суретті көрсетпеуі мүмкін. Авторлық құқық бұзушылық кезінде сізге осы шектеу туралы ескерту пайда болуы мүмкін.

Синтаксис

Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )

  • Деректер көзі – Міндетті. Сіз ауыстырғыңыз келетін жазбаны қамтитын деректер көзі.
  • OldRecord – Міндетті. Ауыстыратын жазба.
  • NewRecord – Міндетті. Ауыстыратын жазба. Бұл өзгеріс жазбасы емес. Бүкіл жазба ауыстырылады және жетіспейтін қасиеттер бос болады.
  • RemoveFlags.All – Қосымша. Жинақта бір жазба бірнеше рет көрінуі мүмкін. Жазбаның барлық көшірмелерін жаңарту үшін RemoveFlags.All аргументін көрсетіңіз.

UpdateIf(DataSource_, Шарт1, ChangeRecord1 [, Шарт2, ChangeRecord2, ... ] )

  • Деректер көзі – Міндетті. Өзгерткіңіз келетін жазбаны немесе жазбаларды қамтитын деректер көзі.
  • Шарттар – Міндетті. Өзгерткіңіз келетін жазба немесе жазбалар үшін есептегенде true мәнін беретін формула. Сіз DataSource баған атауларын формулада пайдалана аласыз. Бірнеше шарттар берілген жағдайда, ақиқат деп есептелетін бірінші шартқа қатысты ChangeRecord ғана қолданылады.
  • Жазбаларды өзгерту - Міндетті. Әр сәйкес шарт үшін шартқа сай DataSource жазбаларына қолданатын жаңа сипат мәндерінің өзгеріс жазбасы. Егер сіз жазбаны ирек жақшаларды пайдалана отырып көрсетсеңіз, бар жазбаның сипат мәндерін сипат формулаларында пайдалануға болады.

Мысалдар

Осы мысалдарда сіз IceCream деп аталатын және мына кестедегі деректерден басталатын деректер көзіндегі жазбаларды ауыстырасыз немесе өзгертесіз:

Icecream мысалы.

Формула Сипаттама Нәтиже
Update( Балмұздақ,
LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Саны: 150 } )
Жазбаны деректер көзінен ауыстырады. Жазбаны ауыстырыңыз.

IceCream деректер көзі өзгертілді.
UpdateIf( Балмұздақ, Саны > 175, { Саны: Саны + 10 } ) Quantity мәні 175-тен үлкенірек жазбаларды өзгертеді. Quantity өрісі 10 қадамымен арттырылады және ешбір басқа өрістер өзгертілмейді. Жазбаларды өзгерту.

IceCream деректер көзі өзгертілді.
Update( Балмұздақ,
LookUp ( балмұздақ, хош иіс = "құлпынай" ),
{ ID: 3, Дәм: «Құлпынай құйрығы»} )
Жазбаны деректер көзінен ауыстырады. Ауыстыру жазбасында Quantity сипаты берілмеген, сондықтан бұл сипат нәтижеде blank болады. Саны жеткізілмеген кезде жазбаны ауыстырыңыз.

IceCream деректер көзі өзгертілді.
UpdateIf( Балмұздақ, шындық, { Саны: 0 } ) Деректер көзіндегі барлық жазбалардың Quantity сипатының мәнін 0-ге орнатады. Барлығы үшін мөлшерді 0-ге орнатыңыз.

IceCream деректер көзі өзгертілді.

Қадамдық

  1. Галереяда деректерді көрсету бөлімінде сипатталғандай Қор деп аталатын жинақты импорттайды немесе жасайды.

  2. Галереяны ProductGallery деп атаңыз.

  3. UnitsSold деп аталатын жүгірткіні қосыңыз және оның Max сипатын мына өрнекке орнатыңыз:
    ProductGallery.Selected.UnitsInStock

  4. Түймешік қосыңыз және оның OnSelect сипатын мына формулаға орнатыңыз:
    UpdateIf(Түгендеу, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSell.Value})

  5. F5 пернесін басыңыз, галереяда өнімді таңдаңыз, жүгірткімен мәнді көрсетіңіз, содан кейін түймешікті таңдаңыз.

    Сіз көрсеткен өнімнің қордағы бірліктер саны сіз көрсеткен мөлшерге азаяды.