Automatiser import images
Le
Ellimac
Bonjour,
Je cherche une procédure pour automatiser l'import de fichiers images dans
un champ de ma BD. But final obtenir un état avec cette image incorporée.
Il faut automatiser car j'ai plus de 3500 images
Merci
Camille
Je cherche une procédure pour automatiser l'import de fichiers images dans
un champ de ma BD. But final obtenir un état avec cette image incorporée.
Il faut automatiser car j'ai plus de 3500 images
Merci
Camille

Poser une question


Bonjour,
Idéalement il te faut une table qui contienne un champ pour le chemin
d'accès et le nom du fichier et une procédure qui scanne le/les
répertoires pour alimenter cette table.
Sub Import_contenu_repertoire(Dossier As String)
Dim Rst_Table as dao.recordset
Dim rep, Nom_Img As String
'obtient le premier fichier ou répertoire qui est dans Dossier : ex :
C:Mes Images
rep = Dir(Dossier & "*.jpg", vbDirectory)
'boucle tant que le répertoire n'a pas été entièrement parcouru
On Error GoTo Erreur
Set Rst_Table=currentdb.openrecordset ("Latable")
Do While (rep <> "")
'teste si c'est un fichier ou un répertoire
If (GetAttr(Dossier & rep) And vbDirectory) = vbDirectory Then
'MsgBox "Répertoire " & rep
Else
Nom_Img = rep
With Rst_Table
.Addnew
!Fichierimmage=Nom_Img
.Update
End with
End If
Suite:
'passe à l'élément suivant
rep = Dir
Loop
GoTo Fin
Erreur:
msgbox Dossier & rep & "Erreur N° " & Err.Number & ":" &
Err.Description
Resume Suite
Fin:
Rst_Table.close
Set Rst_Table=nothing
End Sub
Pour le reste ....
@+
Ellimac wrote:
Il est *très* déconseillé d'intégrer des images (surtout en quantité)
dans une base Access. Cela fera exploser ta base jusqu'à la rendre
inutilisable.
La bonne manière est expliquée ici :
http://grenier.self-access.com/?pos...ans-Access
Je te conseille vivement cette méthode.
Sinon, comme dit Fabien: pour le reste... ;-)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Merci pour cette réponse, je teste.
Cordialement
Camille
"Fabien"
Merci pour cette réponse, je teste.
Cordialement
Camille
"3stone"
En fait je ne veux pas ajouter de nouvel enregistrement à la table mais
renseigner le fichier image pour un champ et ce pour les 3600 fiches
environ.
J'ai modifié comme suit mais cela plante (erreur 3020 Update ou CancelUpdate
effectué sans appeler AddNew ni Edit) :
Private Sub Commande6_Click()
'Dim Rst_Table As AccessObject
Dim rep, Nom_Img As String
'obtient le premier fichier ou répertoire qui est dans Dossier : ex :C:Mes
Images
Dossier = "C:TempImages"
rep = Dir(Dossier & "*.jpg", vbDirectory)
'boucle tant que le répertoire n'a pas été entièrement parcouru
On Error GoTo Erreur
Set Rst_Table = CurrentDb.OpenRecordset("T_stations_schemas2")
Do While (rep <> "")
'teste si c'est un fichier ou un répertoire
If (GetAttr(Dossier & rep) And vbDirectory) = vbDirectory Then
'MsgBox "Répertoire " & rep
Else
Nom_Img = rep
Rst_Table.adresse = Nom_Img
End If
Suite:
'passe à l'élément suivant
rep = Dir
Loop
GoTo Fin
Erreur: MsgBox Dossier & rep & "Erreur N° " & Err.Number & ":" &
Err.Description
Resume Suite
Fin:
Rst_Table.Close
Set Rst_Table = Nothing
End Sub
Camille
"Fabien"