OVH Cloud OVH Cloud

Procédure évenementielle ?

5 réponses
Avatar
BRUNO
Bonjour

Je n'y connais pas grand chose en VBA.

Mais je voudrais réussir à mettre en place une procédure événementielle sur
un formulaire.

En 2 mots :
J'ai 2 tables : MaisonEnCours et MaisonTerminée avec respectivement pour
clé primaire : NumChantierEnCours et NumChantierTerminé
Dans un formulaire Maison terminée je saisi grâce à une liste déroulante un
NumChantierEnCours, car cette maison qui était en cours est maintenant
terminée. La MAJ dans la table MaisonTerminée se fait bien. (un
enregistrement en plus)
Le bat blesse dans la procédure ci-dessous, que j'ai tapée dans les
propriétés du formulaire MaisonTerminée Après MAJ ............


Private Sub Form_AfterUpdate()

DoCmd.RunSQL "DELETE FROM MaisonEnCours WHERE NumChantierEnCours =
'NumChantierTerminé' ;"

End Sub

J'ai une erreur 3464 Type de donnée incompatible dans l'expression du
critère

Qui aurait une solution ?

La syntaxe VBA me gêne beaucoup, j'ai supprimé les tirés de soulignement _
dans mes noms de tables et de champs, j'ai supprimé également le ° que je
mettais à N°_Chantier. Mais j'ai toujours autant d'erreur.
Quel est le rôle exact des " " et des ' ' (respectivement guillemets
double et guillemet simple)

Merci.
BC

5 réponses

Avatar
3stone
Salut,

"BRUNO"
|
| Private Sub Form_AfterUpdate()
|
| DoCmd.RunSQL "DELETE FROM MaisonEnCours WHERE NumChantierEnCours | 'NumChantierTerminé' ;"


DoCmd.RunSQL "DELETE * FROM MaisonEnCours WHERE NumChantierEnCours =" & Me!NumChantierTerminé

si NumChantierTerminé représente bien un champ numérique du formulaire...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
BRUNO
Je vais essayer.
Mais que signifie & Me!
BC
"3stone" a écrit dans le message de
news:3fa23786$0$5788$
Salut,

"BRUNO"
|
| Private Sub Form_AfterUpdate()
|
| DoCmd.RunSQL "DELETE FROM MaisonEnCours WHERE NumChantierEnCours > | 'NumChantierTerminé' ;"


DoCmd.RunSQL "DELETE * FROM MaisonEnCours WHERE NumChantierEnCours =" &
Me!NumChantierTerminé


si NumChantierTerminé représente bien un champ numérique du formulaire...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
BRUNO
J'ai essayé, et cela marche.
Grand merci pour la réponse diligente et efficace.

BC


"3stone" a écrit dans le message de
news:3fa23786$0$5788$
Salut,

"BRUNO"
|
| Private Sub Form_AfterUpdate()
|
| DoCmd.RunSQL "DELETE FROM MaisonEnCours WHERE NumChantierEnCours > | 'NumChantierTerminé' ;"


DoCmd.RunSQL "DELETE * FROM MaisonEnCours WHERE NumChantierEnCours =" &
Me!NumChantierTerminé


si NumChantierTerminé représente bien un champ numérique du formulaire...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut,

"BRUNO"
|
| Mais que signifie & Me!
|

...WHERE NumChantierEnCours =" & Me!NumChantierTerminé

Comme tu doit indiquer ou se trouve la valeur,
tu devrais l'indiquer de cette façon:

& Forms!MonFormulaire!NumChantierTerminé

Or, comme le code ET le contrôle se trouve dans le même
formulaire, tu peut utiliser l'instance de l'objet formulaire
désigner ma "Me" (dans ce cas ci, le formulaire actuel)
C'est en quelque sorte un raccourci...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
BRUNO
Merci pour les explications.
BC
"3stone" a écrit dans le message de
news:3fa27c5b$0$22174$
Salut,

"BRUNO"
|
| Mais que signifie & Me!
|

...WHERE NumChantierEnCours =" & Me!NumChantierTerminé

Comme tu doit indiquer ou se trouve la valeur,
tu devrais l'indiquer de cette façon:

& Forms!MonFormulaire!NumChantierTerminé

Or, comme le code ET le contrôle se trouve dans le même
formulaire, tu peut utiliser l'instance de l'objet formulaire
désigner ma "Me" (dans ce cas ci, le formulaire actuel)
C'est en quelque sorte un raccourci...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------