English Translation :
Hello everyone,
I’m currently working on a visitor registration app in Power Apps connected to a SharePoint (or Dataverse) table named Visiteur
, and I’m facing two issues related to the OnSelect
property of a button.
⚙️ Context
My data source includes a Présence
column (Presence), which is a Choice field with two global values: "Présent"
and "Absent"
.
Here’s my current OnSelect
formula:
Patch(
Visiteur;
Defaults(Visiteur);
{
Nom: DataCardValue9.Value;
Prénom: DataCardValue10.Value;
'Personne et/ou service visité': DataCardValue13.Value;
'Heure d''arrivée': Now();
Présence: LookUp(Choices(DataCardValue1.Items); Value = "Présent")
}
);
ResetForm(Form3);
NewForm(Form3);
Navigate('Écran de bienvenue'; ScreenTransition.Fade)
🧨 Issue 1 – Présence
field doesn't accept value with LookUp(Choices(...))
When I try to assign "Présent"
using LookUp(Choices(DataCardValue1.Items); Value = "Présent")
, Power Apps throws an error:
The type of this argument does not match the expected type 'OptionSetValue'. Found: Record.
However, if I write:
Présence: 'Présent / Absent'.Présent
✅ It works perfectly.
So it seems that LookUp(Choices(...))
is not returning the expected format for the Patch statement.
🧨 Issue 2 – Cannot execute multiple actions in OnSelect
As soon as I add multiple instructions after the Patch
(like ResetForm
, NewForm
, Navigate
, Notify
), the formula editor flags the ;
after Patch(...)
as a syntax error.
Patch(
Visiteur;
Defaults(Visiteur);
{
Nom: DataCardValue9.Value;
Prénom: DataCardValue10.Value;
'Personne et/ou service visité': DataCardValue13.Value;
'Heure d''arrivée': Now();
Présence: 'Présent / Absent'.Présent
}
);
ResetForm(Form3);
NewForm(Form3);
Navigate('Écran de bienvenue'; ScreenTransition.Fade)
Unexpected character. A semicolon was not expected at this position.
It looks like Power Apps only executes the Patch(...)
and prevents any further actions, as if OnSelect
is limited to a single instruction.
✅ What I’ve tried:
-
I'm in French Editor
-
Wrapping the
Patch
result in aSet(...)
variable -
Removing
LookUp()
and assigning values manually -
Verifying form and screen names
❓My questions:
How can I properly assign "Présent"
to a Choice field in a Patch function without triggering a type mismatch?
Why are actions like ResetForm
, NewForm
, and Navigate
not accepted after the Patch
in OnSelect
?
Any help would be greatly appreciated!
Bonjour à tous,
Je rencontre actuellement deux problèmes dans Power Apps en utilisant un bouton avec plusieurs instructions dans son événement OnSelect
.
🎯 Contexte de l’application
Je crée un registre numérique de visiteurs connecté à une table Visiteur
contenant notamment un champ Présence
de type choix global (Présent / Absent).
📌 Problème 1 – Le champ Présence
ne prend pas la valeur "Présent"
Dans cette instruction OnSelect
:
Patch(
Visiteur;
Defaults(Visiteur);
{
Nom: DataCardValue9.Value;
Prénom: DataCardValue10.Value;
'Personne et/ou service visité': DataCardValue13.Value;
'Heure d''arrivée': Now();
Présence: LookUp(Choices(DataCardValue1.Items); Value = "Présent")
}
);
➡️ Le champ Présence
retourne une erreur disant que le type ne correspond pas (Record
au lieu de OptionSetValue
).
Pourtant, lorsque j’écris directement :
Présence: 'Présent / Absent'.Présent
➡️ Cela fonctionne parfaitement.
Donc j’en conclus que Choices(...).Value = "..."
ne fonctionne pas comme prévu dans ce contexte.
📌 Problème 2 – Impossible d’enchaîner plusieurs actions après le Patch
Quand je complète le OnSelect
avec d'autres instructions comme :
Patch(
Visiteur;
Defaults(Visiteur);
{
Nom: DataCardValue9.Value;
Prénom: DataCardValue10.Value;
'Personne et/ou service visité': DataCardValue13.Value;
'Heure d''arrivée': Now();
Présence: 'Présent / Absent'.Présent
}
);
ResetForm(Form3);
NewForm(Form3);
Navigate('Écran de bienvenue'; ScreenTransition.Fade)
Power Apps m’indique une erreur :
Caractères inattendus. Le point-virgule avant ResetForm est invalide.
➡️ Cela donne l’impression que le bouton n’interprète qu’une seule action, et bloque dès qu’on ajoute d'autres instructions après Patch
.
🔧 Ce que j’ai déjà essayé :
Vérification de la langue de l’éditeur (je suis bien en français)
Utilisation de Set(...)
pour stocker le résultat du Patch
Remplacement du champ Présence
par d'autres formules
Test sur formulaire attaché et champ de saisie libre
❓Ma question :
Comment assigner proprement une valeur "Présent" dans un champ de type "Choix" global (Présent / Absent
) dans un Patch
?
Pourquoi les actions comme ResetForm
, Notify
, Navigate
sont bloquées dans OnSelect
après un Patch
alors que la syntaxe semble correcte ?