Insertion d'une image dans un formulaire
Bonjour,
J'ai un soucis avec le code ci-joint. Lorsque que je l'excécute pas de soucis il me met mon image dans mon formulaire et l'adresse de l'image est bien dans mon champ "plan" dans ma table. Le soucis quand je réouvre mon formulaire l'image n'y ai plus mais le l'adresse de l'image est toujours dans mon champ "plan". Sous access 2007 cela fonctionnait parfaitement et pas sous 2003.
Code :
Code:
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
| Private Sub Inserer_Click()
'Déclaration des variables
Dim strFichier As String
Dim oFD As FileDialog
'Paramètre la fenêtre Ouvrir
Set oFD = Application.FileDialog(msoFileDialogOpen)
With oFD
'Ajoute les filtres pour fichiers images et tous
With .Filters
.Clear
.Add "Fichiers images", "*.jpg;*.jpeg;*.bmp;*.gif", 1
.Add "Tous", "*.*", 2
End With
'Renseignement du titre
.Title = "Insérer une image"
'Ouvre l'explorateur dans le fichier 'Mes documents' du User connecté.
.InitialFileName = ""
'Interdit la multi sélection
.AllowMultiSelect = False
'Permet de choisir le mode d'affichage dans l'explorateur (ici apperçu)
.InitialView = msoFileDialogViewPreview
'Permet de personnaliser le bouton.
.ButtonName = "Insérer"
'Affiche la fenêtre
If .Show Then
On Error GoTo fini 'gestion erreur pour control importation
'Retourne un erreur si pas fichier image.
Me.Image15.Picture = .SelectedItems(1)
'Extraction du nom du fichier à copier.
strFichier = Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), "\"))
'Copie du fichier sélectionné vers le sous dossier de la base.
FileCopy .SelectedItems(1), CurrentProject.Path & "\images" & strFichier
'Chargement dans control du chemin de l'image (sous dossier base).
Me.Plan = CurrentProject.Path & "\images" & strFichier
'Rafraîchit le Formulaire.
Me.Refresh
End If
End With
Exit Sub
fini:
Select Case Err
Case 2220
MsgBox "L'importation du fichier ne c'est pas effectué normalement.", _
vbCritical, "Erreur fichier Image"
Case Else
MsgBox Err.Number & Chr(13) & Err.Description
End Select
End Sub |