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
|
Public Sub ExporteImage(ByVal Dossier As String, ByVal NomImage As String)
Dim Buffer() As Byte, FichierHnd As Long, Rcd As DAO.Recordset, NomFichier As String, TailleImage As Long
Set Rcd = CurrentDb.OpenRecordset("SELECT * FROM MesImages WHERE MonImage='" & NomImage & "'")
If Rcd.BOF Or Rcd.EOF Then
MsgBox "L'image " & NomImage & " n'a pas été trouvé dans la table."
Rcd.Close
Set Rcd=Nothing
Exit Sub
End If
TailleImage = Rcd!oleimage.FieldSize
TailleImage = IIf((TailleImage Mod 2) <> 0, TailleImage - 1, TailleImage)
ReDim Buffer(0 To TailleImage - 1)
Buffer = Rcd!oleimage.GetChunk(0, TailleImage)
Rcd.Close
Set Rcd = Nothing
NomFichier = Dossier & "\" & NomImage
If Dir(NomFichier) <> "" Then
If MsgBox("Le fichier " & vbcrlf & "'" & NomFichier & "' existe déjà." & vbCrLf & "Voulez-vous le remplacer ?", vbYesNo) = vbNo Then Exit Sub
Kill NomFichier
End If
BFHeader.bfType = 19778
BFHeader.bfReserved = 0
BFHeader.bfSize = Len(BFHeader) + TailleImage
FichierHnd = FreeFile
Open NomFichier For Binary Access Write As FichierHnd
Put FichierHnd, , BFHeader
Put FichierHnd, , Buffer
Close FichierHnd
End Sub |
Partager