Bonjour,
J'ai testé mais je ne peux pas savoir si cela fonctionne j'ai un
plantage
général avec sortie d'Access sans message d'erreur.
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim strChemin As String
On Error Resume Next
Dossier = "C:TempImages"
strChemin = Dossier & "SCHEMA_" & Mid(Me.[Code bassinNuméro
station], 2,
99)
Me.adresse.Picture = strChemin
End Sub
Bonjour,
J'ai testé mais je ne peux pas savoir si cela fonctionne j'ai un
plantage
général avec sortie d'Access sans message d'erreur.
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim strChemin As String
On Error Resume Next
Dossier = "C:TempImages"
strChemin = Dossier & "SCHEMA_" & Mid(Me.[Code bassinNuméro
station], 2,
99)
Me.adresse.Picture = strChemin
End Sub
Bonjour,
J'ai testé mais je ne peux pas savoir si cela fonctionne j'ai un
plantage
général avec sortie d'Access sans message d'erreur.
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
Dim strChemin As String
On Error Resume Next
Dossier = "C:TempImages"
strChemin = Dossier & "SCHEMA_" & Mid(Me.[Code bassinNuméro
station], 2,
99)
Me.adresse.Picture = strChemin
End Sub
OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
OK merci beaucoup
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
O$NHi1yzJHA.1372@TK2MSFTNGP05.phx.gbl...
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
OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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 :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Ellimac a écrit :
OK merci beaucoup
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
O$NHi1yzJHA.1372@TK2MSFTNGP05.phx.gbl...
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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état toutes
les images, si elles ne sont pas stockées dans le champ. Quelle propriété
définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état toutes
les images, si elles ne sont pas stockées dans le champ. Quelle propriété
définir et où dans l'état ?
Merci encore
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
ekckL7f0JHA.5728@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
OK merci beaucoup
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
O$NHi1yzJHA.1372@TK2MSFTNGP05.phx.gbl...
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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état toutes
les images, si elles ne sont pas stockées dans le champ. Quelle propriété
définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de ta
table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] & ".jpg"
@+
Ellimac a écrit :Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+
Ellimac a écrit :
Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
ekckL7f0JHA.5728@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
OK merci beaucoup
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
O$NHi1yzJHA.1372@TK2MSFTNGP05.phx.gbl...
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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+
Ellimac a écrit :Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+
Bonjour,
Super, le problème venait de ce que j'attribuait le code à un champ de la
table de type OLE. En l'attribuant à une image tout fonctionne nickel.
Mille fois merci
Camille
"Fabien" a écrit dans le message de news:
%Ellimac a écrit :Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+
Bonjour,
Super, le problème venait de ce que j'attribuait le code à un champ de la
table de type OLE. En l'attribuant à une image tout fonctionne nickel.
Mille fois merci
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
%23St0xCj0JHA.1420@TK2MSFTNGP04.phx.gbl...
Ellimac a écrit :
Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
ekckL7f0JHA.5728@TK2MSFTNGP03.phx.gbl...
Ellimac a écrit :
OK merci beaucoup
Camille
"Fabien" <UrbaniakFabienxxxx@Neuf.fr> a écrit dans le message de news:
O$NHi1yzJHA.1372@TK2MSFTNGP05.phx.gbl...
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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+
Bonjour,
Super, le problème venait de ce que j'attribuait le code à un champ de la
table de type OLE. En l'attribuant à une image tout fonctionne nickel.
Mille fois merci
Camille
"Fabien" a écrit dans le message de news:
%Ellimac a écrit :Bonjour,
Certes certes mais comment je fais pour qu'il m'affiche dans mon état
toutes les images, si elles ne sont pas stockées dans le champ. Quelle
propriété définir et où dans l'état ?
Merci encore
Camille
"Fabien" a écrit dans le message de news:Ellimac a écrit :OK merci beaucoup
Camille
"Fabien" a écrit dans le message de news:
O$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
Salut,
Alors revenons a nos moutonS
Si le nom de ton image est composé de Schema_ + contenu d'un champs de
ta table , pourquoi vouloir le stocker dans la table ?
Autant le reconstituer lorsque tu veux accéder à ton image :
Nom_fichier="c:tempimagesSchema_" & [lechampquicontientlenom] &
".jpg"
@+
tu base ton etat sur ta table
tu ajoute dans l'état le champ [Code bassinNuméro station] que tu met en
invisible
Tu ajoutes un champ image dans ton état qui pointe sur une image
quelconque.
Dans l'événement sur Formattage de ton détail tu changes le nom de l'image
grace la propriété .picture="c:tempimagesschema_" & Mid(Me.[Code
bassinNuméro station], 2)
C'est la même solution que t'a indiqué 3stone ;-)
@+