Bonjour,
Je plante sur la création d'un recordset de mise à jour d'un champ dans une table. Voilà le code :
Je n'ai rien inventé : le tutoriel sur les recordsets est super bien fait.Dim oRst As DAO.Recordset
Dim oDb As DAO.Database
Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("Risques encourus", dbOpenTable)
While Not oRst.EOF
oRst.Edit
oRst.Fields("lngInd").Value = Indice([lngActRisq], [lngEffectif], [lngFreq], [lngDang], [lngMap1], [lngMap2], [lngMap3], [lngMap4], [lngMap5])
oRst.Update
oRst.MoveNext
Wend
oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing
La bibliothèque DAO 3.6 est bien déclarée, mais à l'exécution je plante avec un message : ''Erreur d'exécution 3219. Opération non valide."
Le plantage se situe à la commande : Set oRst = oDb.OpenRecordset("Risques encourus", dbOpenTable).
D'où vient l'erreur ?
Je parviens très bien à mes fins par une modification globale telle que :
Mais comme je voudrais par la suite faire patienter (exécution longue = 2 à 3 minutes), je pensais y incorporer une barre de progression... donc obligation de passer d'un enregistrement à l'autre.DoCmd.RunSQL "UPDATE [Risques encourus] SET [Risques encourus].lngInd = Indice([lngActRisq],[lngEffectif],[lngFreq],[lngDang],[lngMap1],[lngMap2],[lngMap3],[lngMap4],[lngMap5]);"
Merci de l'aide que vous pouvez m'apporter.
Partager