Execution de SQL dans une macro

Bonjour,
J’essai de créer une base de données pour la gestion d’une association.
Afin d’enregistrer la présence et les pouvoirs détenus lors des assemblées générales, j’ai créer une liste d’adhérents (Table AG-Pouvoir), filtré par une requête (Req_AG-Pouvoir) et modifiable dans un formulaire (AG-Pouvoir).
Dans ce formulaire, je coches la présence d’un adhérent et note l’ID de la personne lui ayant donné son pouvoir. (Voir Capture d’écran1 ci-jointe)
Après cette saisie manuelle et après perte focus de la cellule “Pouvoir1”, je souhaite une mise à jour automatique de la ligne de la personne ayant donné son pouvoir comme sur l’image 2 de la capture d’écran.
Malheureusement ma macro ne fonctionne pas, alors que mon Sql fonctionné.
Adresse Macro : (Biblio Standard; Module Secretariat; Macro Pouvoir1)
Auriez-vous l’amabilité, dis jeter un œil.
Avec tout mes remerciements par avance.
Cordialement.

Capture.odt (155.1 KB)
MilPat_V1_Partielle.odb (104.7 KB)

Voici la macro:
Sub Pouvoir1(oEvent As object)
Dim oSourceDonnees As Object
Dim oConnexion As Object
Dim ochamp As object 'pour la valeur du champ N° de pouvoir
Dim oFormulaire As Object 'pour le nom du formulaire
Dim stSql As String
Dim stSql1 As String
Dim oSQL_Commande As Object
Dim oSQL1_Commande As Object
Dim ochamp3 As Object ’ Pour valeur du champ “Nom-prénom”

ochamp = oEvent.Source.Model
oFormulaire = ochamp.Parent
ochamp3 = oFormulaire.getByName( “Nom Prénom” )
If ochamp.getCurrentValue >= 1 Then
'MsgBox (ochamp.getCurrentValue,64) ’ affichage pour tester la valeur
MsgBox (ochamp3.getCurrentValue,64) ’ affichage pour tester la valeur
stSql = “UPDATE oFormulaire SET ““Pouvoir_Donné_à”” = ochamp3.getCurrentValue WHERE ““id_adhérents”” = ochamp.getCurrentValue”
stSql1 = “UPDATE oFormulaire SET ““Selection1"” = True WHERE ““id_adhérents”” = ochamp.getCurrentValue”
oSourceDonnees = ThisComponent.Parent.DataSource
oConnexion = oSourceDonnees.GetConnection(”","")
'MsgBox stSql
oSQL_Commande = oConnexion.createStatement()
'MsgBox stSql1
oSQL1_Commande = oConnexion.createStatement()
Else
Exit Sub
End If
End sub

Bonjour,
Je n’ai jamais vu qu’on puisse mettre à jour un formulaire avec une requête SQL ???
Les requêtes agissent sur les tables.
Pour la mise à jour d’affichage de formulaire il faut utiliser les propriétés des contrôles.
Cordialement,
JM

Je ne vois pas comment ça pourrait fonctionner.
Avez-vous testé votre requête directement comme expliqué ici :
https://beaussier.com/sections/viewtopic.php?f=8&t=1577
En suivant les conseils, on comprend qu’il faut faire ceci :
stSql = “UPDATE oFormulaire SET ““Pouvoir_Donné_à”” = " & ochamp3.getCurrentValue & " WHERE ““id_adhérents”” = " & ochamp.getCurrentValue

Bonjour Valioud et Merci pour votre aide.

J’ai mainte fois essayé des écritures, ma dernière en dessous, ne signale pas d’erreur, mais ne fonctionne pas. J’ai modifié les noms de champ pour éviter d’éventuelles erreurs.

Je viens de m’apercevoir, qu’il y a un problème avec la forme des guillemets. Lorsque je les copie-colle, j’ai une forme de virgule inversé alors qu’à d’autre moment j’ai 2 barres droite.
Quel est celui qui est le bon?

Dans le lien que vous m’avez fourni, il ne parle pas de “&”. Cela a t-il une nécessité. J’ai bien sur essayer sans, même résultat.

Vraiment désolé, mais quant on débute, on a l’air “con” ou têtu. Merci encore.

stSql = “UPDATE oFormulaire SET ““Donne”” = " & ochamp3.getCurrentValue &” WHERE ““Num”” = " & ochamp.getCurrentValue

stSql1 = "UPDATE oFormulaire SET "“Select1"” = True WHERE ““Num”” = " & ochamp.getCurrentValue

Pour info: J’avais testé ma requête en direct et elle fonctionne. Voici le code.
UPDATE “AG-Pouvoir” SET “Donne” = “Nom Prénom” WHERE “id_adhérents” =3
UPDATE “AG-Pouvoir” SET “Selection1” = True WHERE “id_adhérents” =3

Pour info 2: La copie intégrale de votre conseil a signalé une erreur d’écriture avec ou sans guillemet après value.

Bonjour jeanmi2403,

Viens mon formulaire, s’est effectivement ma table que je souhaites mettre à jour.
Après la saisie du numéro dans la cellule Pouvoir1, je souhaites que ma table soit mise à jour.
Merci encore

Eh bien, c’est donc UPDATE “Nom de la table”