Mise en situation :
Un formulaire basé sur une table, contient un champ OLE (de cette table)
dans lequel champ une image s'affiche. Le formulaire contient aussi les
autres champs de cette table.
Sur le même formulaire, un bouton de commande exécute une requête Ajout
"paramétrée" permettant de choisir une autre image, par son numéro afin de
changer cette image pour un nouvel enregistrement de la table et de l'ajouter
à cet enregistrement.
Actuellement, cette méthode fonctionne... la nouvelle image est bien ajoutée
dans le champ OLE de la table lorsqu'on clique et choisi le numéro de l'image
soit, en exécutant la requête Ajout.
Problème - Question :
Lorsque dans un nouvel enregistrement du formulaire on demande la
modification de l'image, cette image ne s'affiche pas dans le champ OLE (basé
sur la table) du formulaire. Il faut fermer puis réouvrir le formulaire afin
de voir la nouvelle image dans l'enregistrement correspondant.
Donc, comment faire pour que cette image s'affiche dans le champ OLE du
formulaire au moment où on exécute la requête Ajout sans qu'il ne soit
nécessaire de fermer et réouvrir le formulaire donc, en restant sur
l'enregistrement en cours ?
Est-ce possible ?
--
Merci pour votre aide :-)
Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gafish
butch wrote:
Bonjour,
Bonjour,
Mise en situation : Un formulaire basé sur une table, contient un champ OLE (de cette table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait enfler très vite. Tu trouveras des infos et une méthode beaucoup plus efficace ici : http://officesystem.access.free.fr/images.htm
Arnaud -- Charte du forum : http://www.mpfa.info/ Recherche dans les archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
butch wrote:
Bonjour,
Bonjour,
Mise en situation :
Un formulaire basé sur une table, contient un champ OLE (de cette
table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait
enfler très vite.
Tu trouveras des infos et une méthode beaucoup plus efficace ici :
http://officesystem.access.free.fr/images.htm
Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Mise en situation : Un formulaire basé sur une table, contient un champ OLE (de cette table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait enfler très vite. Tu trouveras des infos et une méthode beaucoup plus efficace ici : http://officesystem.access.free.fr/images.htm
Arnaud -- Charte du forum : http://www.mpfa.info/ Recherche dans les archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
butch
Bonjour Arnaud,
OUF ! Ça marche ! ... pour moi qui ne suis pas à l'aise avec VBA ce fut toute une "aventure". J'ai trouvé la référence que tu m'as indiqué pour la version Access XP. Grand Merci ! Mais (car il y toujours un "mais"...), j'aimerais améliorer ce fonctionnement pour ma BD. En voici les explications :
J'ai copié le code obtenu sur le site de référence plus loin dans ce message. D'après ce que je comprend, ce code permet, entre autre, de localiser de façon relative l'emplacement des images à visualiser dans le formulaire. À titre d'exemple, dans la table (tblImage) servant de base au formulaire, je n'ai inscrit que le nom du fichier image (ex: Gâteaux.bmp) et les différentes images (enregistrements) s'affichent correctement dans le formulaire.
Actuellement, les images sont stockées dans le même dossier que celui où se trouve la BD... je n'aime pas beaucoup cela ! J'aimerais plutôt que les images soient stockées dans un sous-dossier de la BD qui se nommerait ImagesStockees.
Mais voilà... si je fais cela actuellement, le formulaire "ne trouve plus" les images. De plus, la BD elle-même peut être placée éventuellement sur un lecteur autre que le lecteur actuel et aussi dans un dossier différent. Le dossier ImageStockees, quant à lui, serait toujours placé SOUS le dossier où serait la BD. Son nom ne changerait jamais. Cela est-il possible et comment y arriver ? Ci-desous, le code du module ModuleImage (c'est le nom que je lui ai donné) obtenu d'Internet. Est-ce bien dans ce code que la manipulation pour atteindre mon objectif pourrait se faire ?
Public Function DisplayImage(ctlImageControl As Control, strImagePath As Variant) As String On Error GoTo Err_DisplayImage
Dim strResult As String Dim strDatabasePath As String Dim intSlashLocation As Integer
With ctlImageControl If IsNull(strImagePath) Then .Visible = False strResult = "No image name specified." Else If InStr(1, strImagePath, "") = 0 Then ' Path is relative strDatabasePath = CurrentProject.FullName intSlashLocation = InStrRev(strDatabasePath, "", Len(strDatabasePath)) strDatabasePath = Left(strDatabasePath, intSlashLocation) strImagePath = strDatabasePath & strImagePath End If .Visible = True .Picture = strImagePath strResult = "Image found and displayed." End If End With
Exit_DisplayImage: DisplayImage = strResult Exit Function
Err_DisplayImage: Select Case Err.Number Case 2220 ' Can't find the picture. ctlImageControl.Visible = False strResult = "Can't find image in the specified name." Resume Exit_DisplayImage: Case Else ' Some other error. MsgBox Err.Number & " " & Err.Description strResult = "An error occurred displaying image." Resume Exit_DisplayImage: End Select End Function
-- Merci pour votre aide :-) Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant celle-ci.
Bonjour Arnaud,
OUF ! Ça marche ! ... pour moi qui ne suis pas à l'aise avec VBA ce fut
toute une "aventure". J'ai trouvé la référence que tu m'as indiqué pour la
version Access XP. Grand Merci !
Mais (car il y toujours un "mais"...), j'aimerais améliorer ce
fonctionnement pour ma BD. En voici les explications :
J'ai copié le code obtenu sur le site de référence plus loin dans ce
message. D'après ce que je comprend, ce code permet, entre autre, de
localiser de façon relative l'emplacement des images à visualiser dans le
formulaire. À titre d'exemple, dans la table (tblImage) servant de base au
formulaire, je n'ai inscrit que le nom du fichier image (ex: Gâteaux.bmp) et
les différentes images (enregistrements) s'affichent correctement dans le
formulaire.
Actuellement, les images sont stockées dans le même dossier que celui où se
trouve la BD... je n'aime pas beaucoup cela ! J'aimerais plutôt que les
images soient stockées dans un sous-dossier de la BD qui se nommerait
ImagesStockees.
Mais voilà... si je fais cela actuellement, le formulaire "ne trouve plus"
les images. De plus, la BD elle-même peut être placée éventuellement sur un
lecteur autre que le lecteur actuel et aussi dans un dossier différent. Le
dossier ImageStockees, quant à lui, serait toujours placé SOUS le dossier où
serait la BD. Son nom ne changerait jamais.
Cela est-il possible et comment y arriver ?
Ci-desous, le code du module ModuleImage (c'est le nom que je lui ai donné)
obtenu d'Internet. Est-ce bien dans ce code que la manipulation pour
atteindre mon objectif pourrait se faire ?
Public Function DisplayImage(ctlImageControl As Control, strImagePath As
Variant) As String
On Error GoTo Err_DisplayImage
Dim strResult As String
Dim strDatabasePath As String
Dim intSlashLocation As Integer
With ctlImageControl
If IsNull(strImagePath) Then
.Visible = False
strResult = "No image name specified."
Else
If InStr(1, strImagePath, "") = 0 Then
' Path is relative
strDatabasePath = CurrentProject.FullName
intSlashLocation = InStrRev(strDatabasePath, "",
Len(strDatabasePath))
strDatabasePath = Left(strDatabasePath, intSlashLocation)
strImagePath = strDatabasePath & strImagePath
End If
.Visible = True
.Picture = strImagePath
strResult = "Image found and displayed."
End If
End With
Exit_DisplayImage:
DisplayImage = strResult
Exit Function
Err_DisplayImage:
Select Case Err.Number
Case 2220 ' Can't find the picture.
ctlImageControl.Visible = False
strResult = "Can't find image in the specified name."
Resume Exit_DisplayImage:
Case Else ' Some other error.
MsgBox Err.Number & " " & Err.Description
strResult = "An error occurred displaying image."
Resume Exit_DisplayImage:
End Select
End Function
--
Merci pour votre aide :-)
Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.
OUF ! Ça marche ! ... pour moi qui ne suis pas à l'aise avec VBA ce fut toute une "aventure". J'ai trouvé la référence que tu m'as indiqué pour la version Access XP. Grand Merci ! Mais (car il y toujours un "mais"...), j'aimerais améliorer ce fonctionnement pour ma BD. En voici les explications :
J'ai copié le code obtenu sur le site de référence plus loin dans ce message. D'après ce que je comprend, ce code permet, entre autre, de localiser de façon relative l'emplacement des images à visualiser dans le formulaire. À titre d'exemple, dans la table (tblImage) servant de base au formulaire, je n'ai inscrit que le nom du fichier image (ex: Gâteaux.bmp) et les différentes images (enregistrements) s'affichent correctement dans le formulaire.
Actuellement, les images sont stockées dans le même dossier que celui où se trouve la BD... je n'aime pas beaucoup cela ! J'aimerais plutôt que les images soient stockées dans un sous-dossier de la BD qui se nommerait ImagesStockees.
Mais voilà... si je fais cela actuellement, le formulaire "ne trouve plus" les images. De plus, la BD elle-même peut être placée éventuellement sur un lecteur autre que le lecteur actuel et aussi dans un dossier différent. Le dossier ImageStockees, quant à lui, serait toujours placé SOUS le dossier où serait la BD. Son nom ne changerait jamais. Cela est-il possible et comment y arriver ? Ci-desous, le code du module ModuleImage (c'est le nom que je lui ai donné) obtenu d'Internet. Est-ce bien dans ce code que la manipulation pour atteindre mon objectif pourrait se faire ?
Public Function DisplayImage(ctlImageControl As Control, strImagePath As Variant) As String On Error GoTo Err_DisplayImage
Dim strResult As String Dim strDatabasePath As String Dim intSlashLocation As Integer
With ctlImageControl If IsNull(strImagePath) Then .Visible = False strResult = "No image name specified." Else If InStr(1, strImagePath, "") = 0 Then ' Path is relative strDatabasePath = CurrentProject.FullName intSlashLocation = InStrRev(strDatabasePath, "", Len(strDatabasePath)) strDatabasePath = Left(strDatabasePath, intSlashLocation) strImagePath = strDatabasePath & strImagePath End If .Visible = True .Picture = strImagePath strResult = "Image found and displayed." End If End With
Exit_DisplayImage: DisplayImage = strResult Exit Function
Err_DisplayImage: Select Case Err.Number Case 2220 ' Can't find the picture. ctlImageControl.Visible = False strResult = "Can't find image in the specified name." Resume Exit_DisplayImage: Case Else ' Some other error. MsgBox Err.Number & " " & Err.Description strResult = "An error occurred displaying image." Resume Exit_DisplayImage: End Select End Function
-- Merci pour votre aide :-) Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant celle-ci.
butch
Bonjour Arnaud,
OK j'ai trouvé comment placé mes images dans un dossier autre que celui où est la BD. S.V.P. ne tiens pas compte du "long" message à ce sujet... Encore merci. -- Merci pour votre aide :-) Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant celle-ci.
butch wrote:
Bonjour,
Bonjour,
Mise en situation : Un formulaire basé sur une table, contient un champ OLE (de cette table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait enfler très vite. Tu trouveras des infos et une méthode beaucoup plus efficace ici : http://officesystem.access.free.fr/images.htm
Arnaud -- Charte du forum : http://www.mpfa.info/ Recherche dans les archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Arnaud,
OK j'ai trouvé comment placé mes images dans un dossier autre que celui où
est la BD.
S.V.P. ne tiens pas compte du "long" message à ce sujet...
Encore merci.
--
Merci pour votre aide :-)
Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant
celle-ci.
butch wrote:
Bonjour,
Bonjour,
Mise en situation :
Un formulaire basé sur une table, contient un champ OLE (de cette
table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait
enfler très vite.
Tu trouveras des infos et une méthode beaucoup plus efficace ici :
http://officesystem.access.free.fr/images.htm
Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
OK j'ai trouvé comment placé mes images dans un dossier autre que celui où est la BD. S.V.P. ne tiens pas compte du "long" message à ce sujet... Encore merci. -- Merci pour votre aide :-) Butch
P.-S: Pour écrire à mon adresse personnelle S.V.P. enlever "nospam_" devant celle-ci.
butch wrote:
Bonjour,
Bonjour,
Mise en situation : Un formulaire basé sur une table, contient un champ OLE (de cette table) dans lequel champ une image s'affiche.
Evite les champs OLE, ca alourdit considérablement ta base et ca la fait enfler très vite. Tu trouveras des infos et une méthode beaucoup plus efficace ici : http://officesystem.access.free.fr/images.htm
Arnaud -- Charte du forum : http://www.mpfa.info/ Recherche dans les archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr