Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2011, 14h59   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
Par défaut j'ai une erreur 438

bonjour
j'ai trouvé sur ce site une page de code ,pour access 2007,écrit par Morgan BILLY
qui permet l'intégration d'images dans les formulaires continus .Le problème est une erreur 438 au moment de l'affichage dans le contrôle du fichier sélectionné.
ligne Me.image1.picture=.selectedItems(1)

je séche
merci tous d'avance
Franc



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub btnInserer_Click()
'declaration des variables
Dim strfichier As String
Dim ofd As FileDialog
' parametre la fenetre ouvrir
Set ofd = Application.FileDialog(msoFileDialogOpen)
With ofd
    'ajoute les filtres pour fichiers image et tous
    With .Filters
         .Clear
         .Add "fichiers images", "*.jpeg;*.jpg;*.bmp;*.gif", 1
         .Add "tous", "*.*", 2
   End With
   'renseignement du titre
   .Title = "inserer une image"
   'ouvre l'explorateur dans le fichier 'mes documents'du user connecté.
   .InitialFileName = Environ("userprofile") & " \mes documents\mes images"
   'interdit la multi selection
   .AllowMultiSelect = False
   'permet de choisir le mode d'affichage dans l'explorateur (ici appercu)
   .InitialView = msoFileDialogViewPreview
   'permet de personnaliser le bouton
   .ButtonName = "inserer"
   'affiche la fenetre
   If .Show Then
        On Error GoTo fini 'gestion erreur pour control importation
        'retourne un erreur si pas fichier image
        Me.Image1.Picture = .SelectedItems(1)
        'vide du cadre image
        Me.Image1.Picture = " "
        'extraction du nom du fichier à copier
        strfichier = Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), " \ "))
        'copie du fichier selectionné vers le sous dossier de la base.
        FileCopy .SelectedItems(1), CurrentProject.Path & "\images" & strfichier
        'chargement dans control du chemin de l'image (sous dossier base)
        Mes.photos = CurrentProject.Path & "\images" & strfichier
        'rafraichit le formulaire
        Me.Refresh
    End If
    End With
    Exit Sub
fini:
    Select Case Err
       Case 2220
         MsgBox " l'importation du fichier ne c'est pas effectué normalement.", _
         vbCritical, "erreur fichier image"
      Case Else
          MsgBox Err.Number & Chr(13) & Err.Description
  End Select
 
 
End Sub
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 16h06   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour à tous
As tu vérifié que tu as crée un contrôle image nommé image1 sur ton formulaire?
Si oui, peux tu nous donner tout le texte de l'erreur affichée (sa description en fait)?

@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 07h48   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
Bonjour keita

oui j'ai bien créé un cadre d'objet nommé Image1
exactement:
438
propriété ou méthode non gérée par cet objet
merci
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 11h36   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Il faut que ce soit un contrôle Image car la propriété Picture n'existe pas pour les cadres d'objets dépendants ou indépendants.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 18h31   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
merci
j'ai rectifié cela fonctionne
encore merci
a+
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 19h34   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
Par défaut suite de l'erreur 438

Le forum est réactif
Je me suis un peu trop emballé ,l'incorporation de l'image est reportée sur tous les enregistrements .
malgré une incorporation image jepg j'ai l'erreur 2220 donc le message de msgBox

merci
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 10h55   #7
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
Citation:
..l'incorporation de l'image est reportée sur tous les enregistrements...
Pour que chaque enreg. vienne avec son image, tu devras penser à créer un champ de type Objet OLE dans ta table et y coller pour chacun son image.
cependant il est bon de savoir que cette méthode a l'inconvénient d'alourdir la bd. c'est pourquoi, pour l'utilisation d'une grande quantité d'images, il est préférable de créer non pas un champ de type objet ole, mais de type texte qui pourra enregistrer l'adresse complète de l'image sur le disque.
Voici des pistes:
http://cafeine.developpez.com/access/tutoriel/photos/

http://access.developpez.com/faq/?pa...ce#affichImage
Me.Image1.Picture = "c:\temp\dessin.jpg"

@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 18h37   #8
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Il faut au minimum Access 2007, pour appliquer ce qui est décrit dans le tutoriel Intégration d'images dans les formulaires continus sous Access 2007.

Citation:
,l'incorporation de l'image est reportée sur tous les enregistrements
Le contrôle image doit être lié au champ d'une table (Table tblEmployes, champ Photos dans le tutoriel).
Afficher les propriétés du contrôle Image, sélectionner l'onglet «Données».
La propriété «Source contrôle» doit contenir le nom d'un champ, sélectionné dans la liste déroulante.

Citation:
j'ai l'erreur 2220
Texte de l'erreur : Microsoft Office Access ne peut ouvrir le fichier.

Là, je ne sais pas si Access ne trouve pas le fichier ou bien si il n'arrive pas à l'ouvrir parce qu'il ne reconnaît pas le format.

Le code du tutoriel recopie l'image sélectionnée dans un sous-dossier nommé images.
Ce sous-dossier doit se trouver dans le dossier de la base de données.
C'est le chemin complet vers l'image dans le sous-dossier images qui est enregistré dans la table.

Par exemple si la base de données est dans C:\Mes Documents\Mon Appli, les images seront copiées dans C:\Mes Documents\Mon Appli\images.
Si tu sélectionnes une image photo1.jpg, tu dois la retrouver dans C:\Mes Documents\Mon Appli\images et le champ de la table pour stocker le chemin vers l'image doit contenir C:\Mes Documents\Mon Appli\images\photo1.jpg.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 22h53   #9
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
Bonjour
Merci Keita c'est une autre façon de faire.
Je cherche à faire fonctionner ce tuto j'y suis parvenu en supprimant les lignes

Code :
1
2
Me.image1.Picture = .SelectedItems (1)
Me.Image 1.Picture = ""
Je pense qu'elles ne sont pas nécessaires nous somme dans le répertoire images ,et que le ButtonName "Insérer" n'est pas actif puisque pas de fichier sélectionné.

merci
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 08h29   #10
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 46
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 46
Points : 11
Points : 11
Je pensais avoir trouvé mais ce matin j'ai une erreur" 424 objet requis" je sèche
merci

J'ai trouvé c'était un espace de trop entre les guillemets dans
Me.Image1.Picture = ""
franc83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h44.


 
 
 
 
Partenaires

Hébergement Web