Bonjour à tous,

Déjà, j'annonce la couleur: je ne suis pas très doué en VBA!

Je cherche à créer un outil qui permet d'ajouter des photos à des Enfants (trombinoscope pour une école) et pour cela, je passe par du vba pour limiter la taille de mes fichiers.
Grâce notamment à developpez.net j'ai pu écrire / récupérer le code suivant (j'ai lu le tuto de Christophe Warin: http://warin.developpez.com/access/piecejointe/#LV-A) mais il me retourne une erreur d'exécution "3265": Elément non trouvé dans cette collection.

Si quelqu'un peut m'aider, ça serait top!

Voici la partie du code attachée à mon bouton, qui ne semble fonctionner jusqu'ici . J'y ajouterai la limitation de taille de la PJ plus tard.
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
 
Private Sub Ajoutphoto_Click()
 
Dim strchemin As String
Dim oFD As Object
'Paramètre la fenêtre Ouvrir
Set oFD = Application.FileDialog(msoFileDialogOpen)
With oFD
    'Ajoute les filtres pour fichiers textes et tous
    With .Filters
        .Clear
        .Add "Documents", "*.doc; *.png; *.jpg ", 1
        .Add "Tous", "*.*", 2
    End With
    .InitialFileName = ""
    'Interdit la multi sélection
    .AllowMultiSelect = False
    'Affiche la fenêtre et vérifie qu'un fichier a bien été choisi
    If .Show Then
        strchemin = .SelectedItems(1)
        If AjouterFichier(strchemin, Me.N°Enfant) Then
            Me.Form.Requery
        End If
    End If
End With
 
End Sub

Et voici la fonction qui doit permettre de insérer la PJ dans la T_Enfants. Et c'est ici que je bloque:

oRst2("FileData").LoadFromFile (strchemin)

La variable strchemin est correctement alimentée, mais oRst2("FileData") est l'élément non trouvé dans cette collection.


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
Function AjouterFichier(strchemin As String, inteleve As Integer) As Boolean
 
Dim oRst As DAO.Recordset2
Dim oRst2 As DAO.Recordset2
 
Set oRst = CurrentDb.OpenRecordset("SELECT PhotoEnfant FROM T_Enfants WHERE [N°Enfant]=" & inteleve)
    'Put the parent record into edit mode
    oRst.Edit
 
    'Ouvre un recordset sur les fichiers de l'enfant passé en paramètre
    Set oRst2 = CurrentDb.OpenRecordset("SELECT PhotoEnfant FROM T_Enfants WHERE [N°Enfant]=" & inteleve)
 
    oRst2.Edit
    oRst2("FileData").LoadFromFile (strchemin)
    oRst2.Update
 
    AjouterFichier = True
 
oRst.Update
 
fin:
    Set oRst = Nothing
    Exit Function
 
    Resume fin
 
End Function
Merci de votre aide et de vos conseils!