Partekatu bidez


UpdateFuntzioak UpdateIf

Honako hauei aplikatzen zaie: Mihise-aplikazioak Ereduetan oinarritutako aplikazioak

Erregistroak eguneratzen ditu datu-iturburu batean.

Deskribapenak

Update funtzioa

Erabili funtzioa Update datu-iturburu bateko erregistro oso bat ordezkatzeko. Aitzitik, eta Patch funtzioek erregistro bateko balio bat edo gehiago aldatzen dituzte, UpdateIf gainerako balioak bakarrik utziz.

Bilduma batean, erregistro osoak bat egin behar du. Bildumek erregistro bikoiztuak baimentzen dituzte, beraz, hainbat erregistro bat datoz. Erregistro baten kopia guztiak eguneratzeko RemoveFlags.All argumentua erabil dezakezu; bestela, erregistroaren kopia bakarra eguneratzen da.

Datu-iturburuek zutabe baten balioa automatikoki sortzen badu, horren balioa zutabea berretsi egin behar da.

UpdateIf funtzioa

Erabili funtzioa UpdateIf baldintza bat edo gehiagorekin bat datozen erregistro batean edo gehiagotan balio bat edo gehiago aldatzeko. Baldintza bakoitza ematen duen edozein formula izan daiteke egia edo faltsua eta erreferentzia daitezke zutabeak datu-iturburu izenaren arabera. Funtzioak erregistro bakoitzeko egoera ebaluatzen du eta emaitza erregistro bat aldatzen du egia.

Aldaketa zehazteko, erabili jabetza-balio berriak dituen aldaketa-erregistroa. Aldaketa-erregistro hau lerrokatuta giltza lokarriekin hornitzen baduzu, propietate-formulek aldatzen ari diren erregistroaren propietateak erreferentzia egin ditzakete. Portaera hau erabil dezakezu erregistroak formulan oinarrituz aldatzeko.

UpdateIfAdibidez, Adabakia funtzioa ere erabil dezakezu erregistro bateko zutabe zehatzak aldatzeko, beste zutabeei eragin gabe.

Biak Update eta UpdateIf aldatutako datu-iturburua taula gisa itzultzen du. Edozein funtzio erabil ditzakezu portaera-formula batean.

Ordezkaritza

Funtzio hauek ez dira datu-iturri bati delegatzen. Hala ere, UpdateIfeta RemoveIf lokalki funtzionatzen dute delegazioa simulatzeko 500/2000 erregistroen muga arte. Pixkanaka-pixkanaka erregistroak jaitsi egiten dituzte 500/2000 erregistroen ez-delegazioaren mugatik haratago. Baldintza betetzen duten erregistroak biltzen dira. Orokorrean, gehienez 500/2000 erregistro bereizita biltzen dira eta gero exekuzio bakoitzean aldatzen dira. Hala ere, erregistro gehiago eguneratu daitezke lehendik dagoen tokiko datuen cachea handia bada, funtzioak ebaluaziorako erregistro gehiagotara sarbidea izan baitezake. Datu-iturriaren hasierako zatia bakarrik berreskuratuko da, eta ondoren funtzioa aplikatuko da. Agian ez da irudi osoa irudikatuko. Baliteke abisu bat agertzea idazterakoan, muga hori gogorarazteko.

Sintaxia

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

  • DataSource – Beharrezkoa. Ezabatu ordeztu nahi duzun erregistroa dituen datu-iturburua.
  • OldRecord – Beharrezkoa. Ordeztu beharreko erregistroa.
  • NewRecord – Beharrezkoa. Ordezkapenaren erregistroa. Hau ez da aldaketa-erregistro bat. Erregistro osoa ordezten da, eta falta diren propietateak hutsik daude.
  • RemoveFlags.All – Aukerakoa. Bilduma batean, erregistro bera behin baino gehiagotan ager daiteke. Zehaztu RemoveFlags.All argudioa erregistroaren kopia guztiak eguneratzeko.

UpdateIf(DataSource_, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – Beharrezkoa. Aldatu nahi dituzun erregistroak edo erregistroak dituen datu-iturburua.
  • Baldintzak - Beharrezkoak. Ebaluatzen duen formula egia erregistroak edo aldatu nahi dituzun erregistroak. Zutabe-izenak erabil ditzakezu DataSource formulan. Baldintza anitz gainditzen badira, egiazkoa bezala ebaluatzen den lehen Baldintzarekin erlazionatutako ChangeRecord soilik aplikatuko da.
  • ChangeRecords - Beharrezkoa. Dagokion baldintza bakoitzerako, jabetza berriko balioen erregistroa aldatu behar da erregistroetan aplikatzeko Datu-iturburua baldintza betetzen duten. Erregistroa linean giltza lokarriak erabiliz hornitzen baduzu, lehendik dagoen erregistroaren jabetza-balioak erabil daitezke propietate-formuletan.

Adibideak

Adibide hauetan, ordeztu edo aldatu beharreko erregistroak dituzu izena duen datu-iturburu batean IceCream eta taula honetako datuekin hasten da:

IceCream adibidea.

Formula Deskribapenak Emaitza
Update( Izozkia,
LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Erregistro bat ordezkatzen du datu-iturburu batetik. Ordeztu erregistro bat.

IceCream datu-iturburua aldatu egin da.
UpdateIf( Izozkia, Kantitatea > 175, { Kantitatea: Kantitatea + 10 } ) 175 baino handiagoa den Kopurua duten erregistroak aldatzen ditu. Kopurua eremua 10 gehitzen da eta ez da beste zelairik aldatu. Erregistroak aldatu.

IceCream datu-iturburua aldatu egin da.
Update( Izozkia,
LookUp( IceCream, Flavor="Strawberry" ),
{ ID: 3, zaporea: "marrubi zurrunbiloa"} )
Erregistro bat ordezkatzen du datu-iturburu batetik. Kopurua propietatea ez da ordezko erregistroan hornitu, beraz, jabetza izango da hutsik emaitzan. Ordeztu erregistroa kantitatea hornitzen ez denean.

IceCream datu-iturburua aldatu egin da.
UpdateIf( Izozkia, egia, { Kantitatea: 0 } ) Honen balioa ezartzen du Kopurua datu-iturburu 0-ko erregistro guztientzako jabetza. Ezarri guztien kantitatea 0-ra.

IceCream datu-iturburua aldatu egin da.

Urratsez urrats

  1. Inportatu edo sortu bilduma izeneko Inbentarioa, eta galeria batean erakusten du Erakutsi datuak galeria batean deskribatzen du.

  2. Galeriaren izena ProductGallery.

  3. Gehitu izena duen graduatzailea UnitsSold eta ezarri Max adierazpen honen propietatea:
    ProduktuenGaleria.Hautatuak.UnitateakStock

  4. Gehitu botoia, eta ezarri horren OnSelect propietatea formula honetan:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Sakatu F5, hautatu galeriako produktu bat, zehaztu graduatzailearekin balio bat eta, ondoren, hautatu botoia.

    Zuk zehaztutako produktuaren arabera stock-a dagoen unitate kopurua jaitsi egiten da zuk zehaztutako zenbatekoaren arabera.