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

[VBA]PBL de màj d'une table via un formulaire

4 réponses
Avatar
Nadine
Bonjour à tous,

J'ai encore un petit pbl que je n'arrive pas a résoudre.
Dans mes formulaires je mets toujours un bouton "modifier". Je fais une
recherche sur la note de frais par ex. j'ajoute une donnée et je clique sur
le bouton modifier. Il prend bien la donnée ajoutée mais il va écraser le 1er
enregistrement, donc il y a un problème mais je ne trouve pas quoi.
voici mon code :

Private Sub Bmodifier_Click()
Set Mbase = CurrentDb
Set record = Mbase.OpenRecordset("T_note_frais", dbOpenTable)

record.Edit
'Me!Num_idi = record![Num_id]
'record![Num_personne] = Me!Num_personnei
'record![Mois] = Me!Moisi
'record![Annee] = Me!Anneei
record![Numero] = Me!Numeroi
record![Description] = Me!Descriptioni
record![Montant] = Me!Montanti
record![Numero1] = Me!Numero1i
record![Description1] = Me!Description1i
record![Montant1] = Me!Montant1i
record![Numero2] = Me!Numero2i
record![Description2] = Me!Description2i
record![Montant2] = Me!Montant2i
record![Numero3] = Me!Numero3i
record![Description3] = Me!Description3i
record![Montant3] = Me!Montant3i
record![Numero4] = Me!Numero4i
record![Description4] = Me!Description4i
record![Montant4] = Me!Montant4i
record![Numero5] = Me!Numero5i
record![Description5] = Me!Description5i
record![Montant5] = Me!Montant5i
record![Numero6] = Me!Numero6i
record![Description6] = Me!Description6i
record![Montant6] = Me!Montant6i
record.Update
MsgBox "Modification enregistrée !"
End Sub
J'ai essayé de supprimer quelques contrôles du code, que l'on ne doit jamais
modifier, comme le num_id, le num_personne, le mois et l'année.
Mais j'ai toujours le même problème

Quelqu'un pourrait-il m'aider svp ?
Merci pour toute l''aide que vous m''apporterais
Nadine

4 réponses

Avatar
Ilan
Bonjour, visiblement tu ouvres la table au moment de la modification mais
sans pointer sur l'enregistrement à modifier. Tu modifies toujours le même
enregistrement, le premier si la table n'est pas vide.
Il te faut faire une recherche de l'enregistrement à modifier avant
d'éditer quelque chose du genre:

' SI Me!Num_idi correspond à
l'enregistrement en cours)
- Record.FindFirst (Num_id = Me!Num_idi)
- IF Not Record.Nomatch THEN
Record.Edit
...
Record.UpDate
- END IF


Bonjour à tous,

J'ai encore un petit pbl que je n'arrive pas a résoudre.
Dans mes formulaires je mets toujours un bouton "modifier". Je fais une
recherche sur la note de frais par ex. j'ajoute une donnée et je clique sur
le bouton modifier. Il prend bien la donnée ajoutée mais il va écraser le 1er
enregistrement, donc il y a un problème mais je ne trouve pas quoi.
voici mon code :

Private Sub Bmodifier_Click()
Set Mbase = CurrentDb
Set record = Mbase.OpenRecordset("T_note_frais", dbOpenTable)

record.Edit
'Me!Num_idi = record![Num_id]
'record![Num_personne] = Me!Num_personnei
'record![Mois] = Me!Moisi
'record![Annee] = Me!Anneei
record![Numero] = Me!Numeroi
record![Description] = Me!Descriptioni
record![Montant] = Me!Montanti
record![Numero1] = Me!Numero1i
record![Description1] = Me!Description1i
record![Montant1] = Me!Montant1i
record![Numero2] = Me!Numero2i
record![Description2] = Me!Description2i
record![Montant2] = Me!Montant2i
record![Numero3] = Me!Numero3i
record![Description3] = Me!Description3i
record![Montant3] = Me!Montant3i
record![Numero4] = Me!Numero4i
record![Description4] = Me!Description4i
record![Montant4] = Me!Montant4i
record![Numero5] = Me!Numero5i
record![Description5] = Me!Description5i
record![Montant5] = Me!Montant5i
record![Numero6] = Me!Numero6i
record![Description6] = Me!Description6i
record![Montant6] = Me!Montant6i
record.Update
MsgBox "Modification enregistrée !"
End Sub
J'ai essayé de supprimer quelques contrôles du code, que l'on ne doit jamais
modifier, comme le num_id, le num_personne, le mois et l'année.
Mais j'ai toujours le même problème

Quelqu'un pourrait-il m'aider svp ?
Merci pour toute l''aide que vous m''apporterais
Nadine


Avatar
3stone
Salut,

"Nadine"
| J'ai encore un petit pbl que je n'arrive pas a résoudre.
| Dans mes formulaires je mets toujours un bouton "modifier". Je fais une
| recherche sur la note de frais par ex. j'ajoute une donnée et je clique sur
| le bouton modifier. Il prend bien la donnée ajoutée mais il va écraser le 1er
| enregistrement, donc il y a un problème mais je ne trouve pas quoi.
| voici mon code :
|
| Private Sub Bmodifier_Click()
| Set Mbase = CurrentDb
| Set record = Mbase.OpenRecordset("T_note_frais", dbOpenTable)
|
| record.Edit
| 'Me!Num_idi = record![Num_id]
| 'record![Num_personne] = Me!Num_personnei
<snip>


Au lieu de ces arabesques, tu devrait travailler avec la table
(ou une requete basée sur la table) comme source de ton formulaire !
Tu évitera du même coup tout ce code inutile, que tu ne comprends pas...)

De plus, ta table (et donc toute la base) est très mal concue...
- plusieurs champs [montant] dans une table :-(


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Nadine
En voilà une réponse constructive, merci beaucoup, j'aprécie énormément.
--
Merci
Nadine


Salut,

"Nadine"
| J'ai encore un petit pbl que je n'arrive pas a résoudre.
| Dans mes formulaires je mets toujours un bouton "modifier". Je fais une
| recherche sur la note de frais par ex. j'ajoute une donnée et je clique sur
| le bouton modifier. Il prend bien la donnée ajoutée mais il va écraser le 1er
| enregistrement, donc il y a un problème mais je ne trouve pas quoi.
| voici mon code :
|
| Private Sub Bmodifier_Click()
| Set Mbase = CurrentDb
| Set record = Mbase.OpenRecordset("T_note_frais", dbOpenTable)
|
| record.Edit
| 'Me!Num_idi = record![Num_id]
| 'record![Num_personne] = Me!Num_personnei
<snip>


Au lieu de ces arabesques, tu devrait travailler avec la table
(ou une requete basée sur la table) comme source de ton formulaire !
Tu évitera du même coup tout ce code inutile, que tu ne comprends pas...)

De plus, ta table (et donc toute la base) est très mal concue...
- plusieurs champs [montant] dans une table :-(


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
"Nadine"
| En voilà une réponse constructive, merci beaucoup, j'aprécie énormément.


c'est pourtant, en résumé, tout ce qui ne vas pas...

;-))


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/