cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ALP1
Responsive Resident
Responsive Resident

Prevent a patch if record already exists

Hi,

 

I've read this thread before i post https://powerusers.microsoft.com/t5/Building-Power-Apps/Prevent-a-patch-if-record-already-exists/m-p...

 

I have a Sharepoint list with a colum Name "Nom et prénom"

 
 
 

Annotation 2020-07-08 160813.png

 
 

Annotation 2020-07-08 161022.png

 

On my apps i add this

 

And finally on the sumit icon, i add this syntax

 

Annotation 2020-07-08 161615.png

 

I don't why i have this warning. 

Is because my column "Nom et prénom" is a person column ?

Thanks for your help

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

@ALP1

I think DataCardValue10.Selected.Value

But check the Update property of the card containing the control.

View solution in original post

15 REPLIES 15
Pstork1
Dual Super User III
Dual Super User III

The warning is there because CountRows is not a delegable function.  But if you are sure that the filter will return less than 500 rows, which in this case you are, then you can ignore the warning.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.
eka24
Super User
Super User

Revise the portion:

'Nom et prénom'.Value=nonPernom.Text

------------

If you like this post, give a Thumbs up. Where it solved your request, Mark it as a Solution to enable other users find it.

ALP1
Responsive Resident
Responsive Resident

@Pstork1 Thank you but since i add the if condition, i can't submit my forms.

 

@eka24  

I modify to this ..but nothings change 😞

 

If(CountRows(Filter('Test QCM';'Nom et Prénom'.DisplayName=NomPrenom.text))>0;
Notify("Enregistrement existant";NotificationType.Error);;

Patch(
'Test QCM'; 
Defaults('Test QCM');
EditForm1.Updates;
EditForm2.Updates
);;
Navigate(Success;ScreenTransition.Fade)

 

v-siky-msft
Community Support
Community Support

Hi @ALP1 ,

 

If the NomPrenom is a Textinputbox to input Name, the Text property should begin with a capital letter.

Please modify NomPrenom.text to NomPrenom.Text.

Hope this helps.

Sik

ALP1
Responsive Resident
Responsive Resident

Hi,

 

No it's not a inputtext box it's a person or group. 

 

ALP1_0-1594299464366.png

But i' ve found a tricky way, i check this on my sharepoint list 

 

ALP1_1-1594299570745.png

But this is not a sustainable solution because if the user wants to change his answer late then he can not do so.

 

 

 

ALP1
Responsive Resident
Responsive Resident

hi @v-siky-msft , @eka24 , @Pstork1 

 

Let me come back to you and make my need a little more clear.

When a user edits and changes their saved data, it will create a new record in the SharePoint list.

How can I avoid this?

 

In this example, the test user has just changed their information to update it.

Instead of changing its initial record, this created a second record

 

ALP1_0-1594334163686.png

 

If you are using a form in Power Apps why are you using Patch() instead of SubmitForm()? 



--------------------------------------------------------------------------------
If this post helps answer your question, please click on “Accept as Solution” to help other members find it more quickly. If you thought this post was helpful, please give it a Thumbs Up.
ALP1
Responsive Resident
Responsive Resident

In fact, I have a form that is on 2 pages in the app and I need to use patch in order to be able to record the information contained in screen 1 and screen 2. The syntax works very well 

 

 

 

 

Pstork1
Dual Super User III
Dual Super User III

I didn't test the exact syntax, but you want something similar to this.

if(isBlank(Lookup(datasource,Title=TitleDatacard.Text)),Patch(datasource,defaults(datasource),Form.updates,Patch(datasource,Lookup(datasource,Title=TitleDatacard.Text,Form.updates)

The IF checks to see if a Record with the same Title already exists.  The title field is normally an index, but use any field that will be unique for a give record. If the Title doesn't exist (IsBlank) then patch the datasource using the defaults.  That will create a new record.  Otherwise Patch the datasource using a Lookup to update the existing record.



-------------------------------------------------------------------------
If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Users online (2,303)