Bonjour à tous

Depuis peu, lors de la copie du contenu d'un champ mémo vers une autre table, si ledit champ contient plus de 100 lignes se lève une erreur 3709 "La clé d'enregistrement n'a été trouvée dans aucun enregistrement"...

Ce champ mémo ne dépasse pourtant pas la limite de contenu (que je sache...), il est en rich text et lorsque il contient moins de 100 lignes tout fonctionne à merveille.

Si plus de 100 lignes au format "ligne + espace <br> ou vbcrlf" tel que vous le voyez dans la capture jointe alors l'erreur apparaît et bloque définitivement le code qui vient juste après...

Voici les tests que j'ai effectué, sans succès :

- Annulation des indexes sur le champ en question
- Compactage et réparation (tout revient à la normale jusqu'à ce que l'on sollicite la copie du champ dépassant 100 lignes... rebelotte)
- Création d'une nouvelle base et importation du data
- Transformation en "texte brut"

En principe ce type de champ doit pouvoir contenir beaucoup plus que ce que je lui demande et être optimisé en adaptant exclusivement sa taille finale au contenu

Existe t'il selon vous une explication ou solution de contournement ?

Code qui copie dans la table définitive et efface de la table temporaire (qui produit l'erreur 3709 seulement si > à 100 lignes):

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Public Sub btnSelectionnerSuggestionActive_Click()
 
Dim db As DAO.Database
Set db = CurrentDb
 
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Dim NumTerrier As String
Dim nbSuggestions As Single
 
NumTerrier = NumAutoTerrier()
nbSuggestions = DCount("*", "[suggestion terriers]", "[sélection]=true")
 
 
Set rs2 = db.OpenRecordset("terriers", dbOpenDynaset)
Set rs3 = db.OpenRecordset("select * from [suggestion terriers] where sélection=true", dbOpenDynaset)
 
On Error GoTo err
 
Select Case nbSuggestions
    Case Is <> 0
 
rs3.MoveLast
rs3.MoveFirst
 
Do While Not rs3.EOF
 
    rs2.AddNew
    rs2!idSuggestion = rs3!idSuggestion
    rs2!IdTerrier = NumAutoTerrier
    rs2!ListeProprietaires = rs3!ListeProprietaires
    rs2!Propriétaires = rs3!Propriétaires
    rs2!Parcelles = rs3!Parcelles
    rs2!ListeParcelles = rs3!ListeParcelles
    rs2!Exploitant = rs3!Exploitant
    rs2!CodeExploitant = rs3!CodeExploitant
    rs2.update
    db.Execute ("delete * from [suggestion terriers] where idsuggestion=" & rs3!idSuggestion)
    db.Execute ("update [suggestion terriers] set sélection=false")
 
rs3.MoveNext
Loop
 
Case Is = 0
 
Set rs = db.OpenRecordset("select * from [suggestion terriers] where idsuggestion=" & Me.SFSuggestionTerriersGauche!idSuggestion, dbOpenDynaset)
    rs2.AddNew
    rs2!idSuggestion = rs!idSuggestion
    rs2!IdTerrier = NumAutoTerrier
    Debug.Print NumTerrier
    rs2!ListeProprietaires = rs!ListeProprietaires
    rs2!Propriétaires = rs!Propriétaires
    rs2!Parcelles = rs!Parcelles
    rs2!ListeParcelles = rs!ListeParcelles
    rs2!Exploitant = rs!Exploitant
    rs2!CodeExploitant = rs!CodeExploitant
    rs2.update
    db.Execute ("delete * from [suggestion terriers] where idsuggestion=" & rs!idSuggestion)
 
End Select
 
'Me.Parent.SF_Terriers.Form.Requery
Form_SFSuggestionTerriersGauche.Requery
[Form_SF Terriers].Requery
[Form_ListeTerriersChoisis].Requery
Form_SFSuggestionTerriersGauche.CocheSelectionnerTousTerriers = False
'Me.NavTerriers.Requery
'Me.SFNavTerriers.Form.Requery
'Me.cboExploitant = ""
 
rs.Close
rs2.Close
rs3.Close
 
Set rs = Nothing
Set rs2 = Nothing
Set rs3 = Nothing
'RemplirTreeViewParcelles
 
err:
If err.Number = 3022 Then
MsgBox ("Un des terriers que vous avez choisi fait déjà partie d'une sélection antérieure, veuillez affiner votre choix.  Opération annulée"), vbCritical, "Risque de doublon"
Exit Sub
End If
 
db.Close: Set db = Nothing
End Sub
Nom : Capture table terriers.JPG
Affichages : 101
Taille : 173,4 Ko