bonjour,
je bute sur une erreur 3001 lorsque j'exécute mon code VBA Access (voir plus bas).
Ce code est assez simple : j'ai une table "Traducteurs" pour laquelle j'ajoute, quand elle n'existe pas, une colonne "AGENCE". Jusque là tout va bien.
Ensuite, je crée un recordset, et je parcours l'ensemble des 2300 lignes du recordset pour modifier ce champ "AGENCE" en fonction de certains critères.
(pour l'exemple, je lui donne la valeur constante "toto")
Curieusement, la macro commence à faire la mise à jour du champ et s'arrête en plein milieu du recordset (jamais au même endroit). Le debug montre qu'il s'arrête lors de la commande ".update" du recordset.
J'ai relu 15 fois mon code, coché la librairie microsoft DAO 3.6, et la je botte en touche !
Merci pour votre aide
____________________________________
Sub clicko()
Dim db As DAO.Database
Dim T_Trad As DAO.TableDef
Dim Str_Trad As String
Dim rst_Trad As DAO.Recordset
Dim f As Field
Dim i As Long
Set db = CurrentDb
Set T_Trad = db.TableDefs("Traducteurs")
'test sur l'existence de la colonne AGENCE : si elle existe, on la supprime
For Each f In T_Trad.Fields
If f.Name = "AGENCE" Then
T_Trad.Fields.Delete ("AGENCE")End If
Exit For
Next f
'création de la colonne AGENCE
T_Trad.Fields.Append T_Trad.CreateField("AGENCE", dbText, 5)
i = 0
Str_Trad = "SELECT Traducteurs.* FROM Traducteurs ORDER BY Noeud, [Traducteurs Numéro SDA];"
Set rst_Trad = db.OpenRecordset(Str_Trad, dbOpenDynaset)
With rst_Trad
If .EOF ThenEnd With
.MoveFirstEnd If
While Not .EOF
i = i + 1Wend
.Edit
.Fields("AGENCE").Value = "toto"
.Update
.MoveNext
.Close
End Sub
Partager