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
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
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...
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...
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...
Ellimac a écrit :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
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 a écrit :
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
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 a écrit :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
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 ....
@+
Bonjour,
Ellimac wrote: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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)
Bonjour,
Ellimac wrote:
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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)
Bonjour,
Ellimac wrote: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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)
Ellimac a écrit :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
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 a écrit :
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
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 a écrit :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
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 ....
@+
Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Bonjour,
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" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OwE7vNhzJHA.140@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
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
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 ....
@+
Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
Ellimac a écrit :
Bonjour,
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" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OwE7vNhzJHA.140@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
Ellimac a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
C'est bien ce qui me manque : pouvoir balayer tous les enregistrements, un
genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
C'est bien ce qui me manque : pouvoir balayer tous les enregistrements, un
genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
e5H7iWyzJHA.4116@TK2MSFTNGP04.phx.gbl...
Ellimac a écrit :
Bonjour,
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" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OwE7vNhzJHA.140@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
C'est bien ce qui me manque : pouvoir balayer tous les enregistrements, un
genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table a
mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre a
jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier :-(
@+
Ellimac a écrit :C'est bien ce qui me manque : pouvoir balayer tous les enregistrements,
un genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table
a mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre
a jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier
:-(
@+
Attention a l'ordre de la table. Celui que tu vois a l'écran n'est pas
celui que tu pourrais obtenir en balayant la table.
On vois çà lundi si tu veux.
Bon Week
Ellimac a écrit :
C'est bien ce qui me manque : pouvoir balayer tous les enregistrements,
un genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
e5H7iWyzJHA.4116@TK2MSFTNGP04.phx.gbl...
Ellimac a écrit :
Bonjour,
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" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
OwE7vNhzJHA.140@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table
a mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre
a jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier
:-(
@+
Attention a l'ordre de la table. Celui que tu vois a l'écran n'est pas
celui que tu pourrais obtenir en balayant la table.
On vois çà lundi si tu veux.
Bon Week
Ellimac a écrit :C'est bien ce qui me manque : pouvoir balayer tous les enregistrements,
un genre For Each de la table.
Le nom du fichier peut être une combinaison du nom d'un champ de la table
avec le mot Schema_ devant.
Sinon prendre les fichiers 1 par 1 fonctionne aussi car le répertoire ne
contient que les images que l'on veut et dans le même ordre que les
enregistrements de la table.
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :Bonjour,
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" a écrit dans le message de news:Ellimac a écrit :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
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 ....
@+
Ok
Sur quelle critère fait tu le lien entre ton enregistrement de la table
a mettre a jour et le fichier image ?
Parce que là telle que tu t'y prend, tu parcours le répertoire
c:tempimages et dés que tu trouve un fichier *.jpg tu cherche a mettre
a jour le champ [Adresse] du premier enregistrement de ta table.
En plus si on corrige la syntaxe en ajoutant
With Rst_Table
.edit
!Adresse=Nom_Image
.update
EndWith
tu va changer la valeur du champ autant de fois qu'il y a d'images dans
ton dossier et au final un seul enregistrement aura été modifié et
contiendra le chemin d'accès au dernier fichier trouvé dans le dossier
:-(
@+
Attention a l'ordre de la table. Celui que tu vois a l'écran n'est pas
celui que tu pourrais obtenir en balayant la table.
On vois çà lundi si tu veux.
Bon Week
Bonjour,
Ellimac wrote: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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)
Bonjour,
Ellimac wrote:
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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)
Bonjour,
Ellimac wrote: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...
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/?post/2009/02/20/Gerer-une-banque-dimages-dans-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)