Bonjour, je travail actuellement sur un projet avec une base de données (accèss 2007). J'y enregistre des données texte, mais je veux aussi pouvoir stocker des images. A la lecture de plusieurs post, j'ai pu voir que le meilleur moyen est de stocker le chemin de l'image plutôt de l'image elle même.
Pour ce faire, j'ai une interface; Boîte de dialogue Ouvrir; qui me permet de sélectionner ma photo, puis un code pour l'enregistrer dans un dossier spécifique (le même dossier pour toutes les images de ma bd). Mon problème est que lorsque j'enregistre, c'est plus un copier/coller qu'un enregistrement, ce qui fait que le nom de la photo reste le même que l'original. Je voudrais pouvoir lui donner un nom du type "NomClient_MarqueMachine_NumSerie_00".
Auriez vous une solution à me proposer.
Voici mon code actuel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Option Explicit Dim FSO As New FileSystemObject Dim ChPhotos As StringMerci 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
28
29
30
31
32
33
34
35
36
37 Private Sub Command3_Click() Dim FicDest As String Dim ficSource As String Dim reponse As Byte 'Attribue à CancelError la valeur True Dlg.CancelError = True On Error GoTo errhandler ' Définit la propriété Flags Dlg.Flags = cdlOFNHideReadOnly ' Définit les filtres Dlg.Filter = "Tous les fichiers (*.*)|*.*|Fichiers image" & _ "(*.jpg)|*.jpg|Fichiers batch (*.bat)|*.bat" ' Définit le filtre par défaut Dlg.FilterIndex = 2 ' Affiche la boîte de dialogue Ouverture Dlg.ShowOpen ' Affiche le nom du fichier sélectionné List1.AddItem Dlg.FileTitle FicDest = App.Path & "\BdPhotos\" ficSource = Dlg.FileName If FSO.FileExists(FicDest & Dlg.FileTitle) = False Then FSO.CopyFile ficSource, FicDest Else reponse = MsgBox("le fichier existe déjà, voulez vous l'écraser?", vbYesNo, "Attention") If reponse = vbYes Then FSO.CopyFile ficSource, FicDest, True Else Exit Sub End If End If Exit Sub errhandler: 'L'utilisateur a cliqué sur Annuler Exit Sub End Sub
Partager