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.
Merci de votre aide et de vos conseils!
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
Partager