Bonjour à Tous,
je gère une base access2003 pour ma société et je bloque sur le message d'erreur suivant : "Update ou cancelUpdate effectué sans appeler AddNew ni Edit"
le contexte :
1- j'ai une table nommée Tmp avec 3 colonnes (cette table est issue d'un import Excel) :
colonne 1 = [Index contact]
colonne 2 = [voeux 2011]
colonne3 = [cadeau 2011]
2- j'ai une table cible T_mailing déjà existante où je crée deux nouvelles colonnes [voeux 2011] et [cadeau 2011] pour l'instant vierge de données. la première colonne de cette table est [index contact]
Jusqu'ici tout va bien, mais c'est par la suite que cela bug
3- je souhaite remplir mes nouvelles colonnes sous T_mailing avec les 2 colonnes de Tmp en respectant la condition pour chaque ligne :
[Index contact].[T_mailing]=[Index contact].[Tmp].
voici donc le code qui pose problème lors du passage sur la ligne : ![voeux_2012] = " & Tabletmp.Fields(1).Value" avec le message énoncé précédemment.
je ne comprends pas pourquoi, il me sort ce message alors que je lui indique Matable.edit dans la boucle With.
J'ai beau chercher sur la toile des solutions dans les forums, je bloque...
si quelqu'un a une idée sur une grosse erreur que j'aurais fait.
Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Dim MaTable As DAO.Recordset Dim Tabletmp As DAO.Recordset Set MaTable = CurrentDb.OpenRecordset("T_mailing", dbOpenDynaset) Set Tabletmp = CurrentDb.OpenRecordset("tmp", dbOpenDynaset) 'on répercute les ajouts sur la table mailing pour les deux nouvelles colonnes Dim val As Integer While Not Tabletmp.EOF MaTable.Edit Tabletmp.Edit Tabletmp.MoveFirst val = Tabletmp.Fields(0).Value With MaTable .Edit .FindFirst ("[Index contact] = " & val) ![voeux_2011] = " & Tabletmp.Fields(1).Value" ![Cadeau_2011] = " & Tabletmp.Fields(2).Value" .Update .Requery End With Tabletmp.MoveNext Wend MaTable.Update MaTable.Close Tabletmp.Close
Partager