Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Commande Validation Enregistrement / ecriture champs

6 réponses
Avatar
alain teyssedre
Bonjour

Quelle est la ligne de commande à insérer pour que ça marche ?

Dans un sous formulaire j'enregistre automatiquement des données sur click
bouton:

j'ai l'erreur suivante sur la dernière ligne du code ci-dessous

Erreur d'instruction 2118
Executer l'enregistrement du champ en cours avant d'actualiser

Set dbs = CurrentDb
Set rst = dbs![Appels].OpenRecordset(dbOpenTable)

rst.MoveLast
rst.Edit
rst.Fields("Champ1").Value = Me![zone1]
.
.
rst.Fields("Champ1").Value = Me![zone1]
rst.Update
rst.Close
Forms![form_societe]![Appels sous-formulaire].Requery


merci pour votre aide
@+
Alain

6 réponses

Avatar
joyeux atchoum
Dans l'article , alain teyssedre
vous avez dit...

Bonjour

Quelle est la ligne de commande à insérer pour que ça marche ?

Dans un sous formulaire j'enregistre automatiquement des données sur click
bouton:

j'ai l'erreur suivante sur la dernière ligne du code ci-dessous

Erreur d'instruction 2118
Executer l'enregistrement du champ en cours avant d'actualiser


ben je dirais que si le recordsource de ton form est le meme que le
recordset de ton VBA

alors tu essaies d'inserer 2 enregistrements nouveaux dans le meme
enregistrement

d'où la demande de valider ton premier enregistrement avant d'inserer
un nouvel enregistrement


mais bon ça me parait bizarre ce que tu veux faire


Set dbs = CurrentDb
Set rst = dbs![Appels].OpenRecordset(dbOpenTable)

rst.MoveLast
rst.Edit
rst.Fields("Champ1").Value = Me![zone1]
.
.
rst.Fields("Champ1").Value = Me![zone1]
rst.Update
rst.Close
Forms![form_societe]![Appels sous-formulaire].Requery


voili

ja;)
qui est pas sur de ce qui est demandé

Avatar
alain teyssedre
Bonjour Joyeux Atchoum

Effectivement je pense que tu as bien vu la chose ...

ce que je veux faire: dans un sous formulaire lorsque je crée un nouvel
enregistrement,
aprés avoir défini les contenus des premiers Champ1 et Champ2, je souhaite
pouvoir en cliquant sur 1 bouton remplir automatiquement les champs restants
: Champ3 et Champ4
(c'est ce qu'essaye de faire mon bout de code)

cerise sur le gateau : l
si je me positionne sur un jeu d'enregistrements existant (Champ1, Champ2,
Champ3, champ4..)
je souhaite sur condition du champ1 soit créer un enregistrement, soit
ajouter dans un enregistrement
existant des infos supplementaire dans Champ3 et Champ4

voili voila

cdlt
Alain


"joyeux atchoum" a écrit dans le message de news:

Dans l'article , alain teyssedre
vous avez dit...

Bonjour

Quelle est la ligne de commande à insérer pour que ça marche ?

Dans un sous formulaire j'enregistre automatiquement des données sur
click


bouton:

j'ai l'erreur suivante sur la dernière ligne du code ci-dessous

Erreur d'instruction 2118
Executer l'enregistrement du champ en cours avant d'actualiser


ben je dirais que si le recordsource de ton form est le meme que le
recordset de ton VBA

alors tu essaies d'inserer 2 enregistrements nouveaux dans le meme
enregistrement

d'où la demande de valider ton premier enregistrement avant d'inserer
un nouvel enregistrement


mais bon ça me parait bizarre ce que tu veux faire


Set dbs = CurrentDb
Set rst = dbs![Appels].OpenRecordset(dbOpenTable)

rst.MoveLast
rst.Edit
rst.Fields("Champ1").Value = Me![zone1]
.
.
rst.Fields("Champ1").Value = Me![zone1]
rst.Update
rst.Close
Forms![form_societe]![Appels sous-formulaire].Requery


voili

ja;)
qui est pas sur de ce qui est demandé



Avatar
joyeux atchoum
Dans l'article , alain teyssedre
vous avez dit...

Bonjour Joyeux Atchoum

Effectivement je pense que tu as bien vu la chose ...


genial, je progresse je commence à comprendre les questions des autres
:=)

ce que je veux faire: dans un sous formulaire lorsque je crée un nouvel
enregistrement,
aprés avoir défini les contenus des premiers Champ1 et Champ2, je souhaite
pouvoir en cliquant sur 1 bouton remplir automatiquement les champs restants
: Champ3 et Champ4
(c'est ce qu'essaye de faire mon bout de code)


ben faut faire autrement
dans ce cas
tu chope le bon evenement qui t'interresse ben par exemple
sur le ongotfocus de ton champ1
et tu fais
me.champ3 = "ce que je veux"
me.champ4 = "ce que tu veux"

ainsi dés que l'utilisateur insere une donnée dans l'enregistrement tu
as les 2 autres champs qui se remplisse

tu peux choisir n'importe quel evenement du moment qu'il existe bien un
nouvel enregistrement de present dans ton sous form

cerise sur le gateau : l
si je me positionne sur un jeu d'enregistrements existant (Champ1, Champ2,
Champ3, champ4..)
je souhaite sur condition du champ1 soit créer un enregistrement, soit
ajouter dans un enregistrement


ben là faudrait donner plus de precisions pour etre exact

sur l'evenement current (sur activation) de ton form ( à condition
qu'un seul enregistrement soit present)
tu teste ton champ1
et tu agis en consequence

soit tu modifies => me.champ1 = "lamodif"
ou si c'est de l'ajout me.champ1 = me.champ1 & "le complement"

soit tu créés un nouvel enregistrement me.recorset.movelast
(enfin là j'ai un doute pour la syntaxe) le principe tu acccéde à un
nouvel enregistrement et tu retrouve au premier cas

voili
j'espere avoir ete compréhensible car coté lisibilité ....

ja ;)
qui devrait arreter d'etre brouillon ;)

Avatar
alain teyssedre
Je vois mal comment je chope l'évènement ...

Je rentre dans mon formulaire en mode ajout d'un nouvel enregistrement
je rentre les 2 premiers champs: Champ1 et Champ2

à cet instant précis j'ai le choix entre 2 options:
- je continue à remplir Champ3 t Champ4 manuellement
ou : - je clique sur mon bouton magique et Champs3 et Champ4 se remplissent
tout seuls
c'est donc dans ce cas de figure que je dois choper l'évènement en
question
comment ? (that is the question)

@+
Alain




"joyeux atchoum" a écrit dans le message de news:

Dans l'article , alain teyssedre
vous avez dit...

Bonjour Joyeux Atchoum

Effectivement je pense que tu as bien vu la chose ...


genial, je progresse je commence à comprendre les questions des autres
:=)

ce que je veux faire: dans un sous formulaire lorsque je crée un nouvel
enregistrement,
aprés avoir défini les contenus des premiers Champ1 et Champ2, je
souhaite


pouvoir en cliquant sur 1 bouton remplir automatiquement les champs
restants


: Champ3 et Champ4
(c'est ce qu'essaye de faire mon bout de code)


ben faut faire autrement
dans ce cas
tu chope le bon evenement qui t'interresse ben par exemple
sur le ongotfocus de ton champ1
et tu fais
me.champ3 = "ce que je veux"
me.champ4 = "ce que tu veux"

ainsi dés que l'utilisateur insere une donnée dans l'enregistrement tu
as les 2 autres champs qui se remplisse

tu peux choisir n'importe quel evenement du moment qu'il existe bien un
nouvel enregistrement de present dans ton sous form

cerise sur le gateau : l
si je me positionne sur un jeu d'enregistrements existant (Champ1,
Champ2,


Champ3, champ4..)
je souhaite sur condition du champ1 soit créer un enregistrement, soit
ajouter dans un enregistrement


ben là faudrait donner plus de precisions pour etre exact

sur l'evenement current (sur activation) de ton form ( à condition
qu'un seul enregistrement soit present)
tu teste ton champ1
et tu agis en consequence

soit tu modifies => me.champ1 = "lamodif"
ou si c'est de l'ajout me.champ1 = me.champ1 & "le complement"

soit tu créés un nouvel enregistrement me.recorset.movelast
(enfin là j'ai un doute pour la syntaxe) le principe tu acccéde à un
nouvel enregistrement et tu retrouve au premier cas

voili
j'espere avoir ete compréhensible car coté lisibilité ....

ja ;)
qui devrait arreter d'etre brouillon ;)



Avatar
joyeux atchoum
Dans l'article , alain teyssedre
vous avez dit...

Je vois mal comment je chope l'évènement ...

Je rentre dans mon formulaire en mode ajout d'un nouvel enregistrement
je rentre les 2 premiers champs: Champ1 et Champ2

à cet instant précis j'ai le choix entre 2 options:
- je continue à remplir Champ3 t Champ4 manuellement
ou : - je clique sur mon bouton magique et Champs3 et Champ4 se remplissent
tout seuls
c'est donc dans ce cas de figure que je dois choper l'évènement en
question
comment ? (that is the question)


and this is the answer

sur l'evenement clik de ton bouton ;=)

sub btnTotoEnSlip_Click () '//bouton magique

If me.newrecord = True then
Me.champ3 = "cequejeveux"
Me.champ4 = "autrechosemaisjeveuxbienapero"
Me.refresh '//sauve les modif
else
If Me.champ1 = "lecritérequetuveuxpournouvelenregistrement" then
Me.movelast
Me.champ3 = "cequ'ilfautdanscecas"
Me.champ4 = "cequ'ilfautdanscetautreca"
else
Me.champ3 = "Modif1"
Me.champ4 = "Modif2"
end if
end if

end sub


t'oublie pas la gestion des erreurs et puis voili
c'est quand meme plus beau quand j'ecris un bout de code maitenant
faudrait que ça marche un peu :=)


ja ;)
qui applique l'adage : "si non satisfait pas de remboursement"
:=)

Avatar
alain teyssedre
Merci joyeux atchoum

ça marche super ...


@+
Alain


"joyeux atchoum" a écrit dans le message de news:

Dans l'article , alain teyssedre
vous avez dit...

Je vois mal comment je chope l'évènement ...

Je rentre dans mon formulaire en mode ajout d'un nouvel enregistrement
je rentre les 2 premiers champs: Champ1 et Champ2

à cet instant précis j'ai le choix entre 2 options:
- je continue à remplir Champ3 t Champ4 manuellement
ou : - je clique sur mon bouton magique et Champs3 et Champ4 se
remplissent


tout seuls
c'est donc dans ce cas de figure que je dois choper l'évènement
en


question
comment ? (that is the question)


and this is the answer

sur l'evenement clik de ton bouton ;=)

sub btnTotoEnSlip_Click () '//bouton magique

If me.newrecord = True then
Me.champ3 = "cequejeveux"
Me.champ4 = "autrechosemaisjeveuxbienapero"
Me.refresh '//sauve les modif
else
If Me.champ1 = "lecritérequetuveuxpournouvelenregistrement" then
Me.movelast
Me.champ3 = "cequ'ilfautdanscecas"
Me.champ4 = "cequ'ilfautdanscetautreca"
else
Me.champ3 = "Modif1"
Me.champ4 = "Modif2"
end if
end if

end sub


t'oublie pas la gestion des erreurs et puis voili
c'est quand meme plus beau quand j'ecris un bout de code maitenant
faudrait que ça marche un peu :=)


ja ;)
qui applique l'adage : "si non satisfait pas de remboursement"
:=)