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 06/07/2011, 16h12   #1
Invité régulier
 
Homme
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 9
Points : 9
Par défaut Gestions des pièces jointes avec RecordSet sous VBA

Bonjour,

Je voudrais transférer des pièces jointes d'une table1 à une table2.
Pour cela, j'ai un formulaire lié à ma table 2 avec une liste déroulante regroupant les enregistrements de la table 1. AprèsMaj de ma liste me permet de récupérer des données contenues dans la table 1 et de les inclure dans la table 2. Pour les données textes, pas de problème, mais pour les pièces jointes, pas possible.

Mon code est:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Dim ChoixGroupeTaille As String
Dim oRst3 As DAO.Recordset
 
ChoixGroupeTaille = Me.Groupe_taille.Text
 
Set oRst3 = CurrentDb.OpenRecordset("SELECT [Image] FROM [TblGroupe_Taille] WHERE [Num_Groupe]='" & ChoixGroupeTaille & "'", _
dbOpenSnapshot)
 
Me.Photo_Groupe_Taille = oRst3.Fields("Image").Value
 
oRst3.Close
Set oRst3 = Nothing
Avec Image= le champs contenant la pièce jointe dans la table TblGroupe_Taille (table 1)
Photo_Groupe_Taille = le champs devant réceptionner la pièce jointe (table 2)
Groupe_taille = la liste permettant de choisir l'enregistrement de la table 1

J'ai regardé le dossier http://www.developpez.net/forums/d17...s-jointes-vba/, mais je n'arrive pas à réutiliser le code.

Quelqu'un pourrai t il m'aider?

Merci par avance
Oxopor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 20h49   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Quel est le type du champ [TblGroupe_Taille].[Image] ?

Quel est le type de Me.[Photo_Groupe_Taille] ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 01h27   #3
Invité régulier
 
Homme
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 9
Points : 9
Merci marot_r de te soucier de mes problèmes.

[TblGroupe_Taille].[Image] est de type pièce jointe et Me.[Photo_Groupe_Taille] est de type image.

J'ai repris l'aide access et au final j'enregistre le contenu de mon champs sur le disque, je le charge dans ma table et je l'efface du disque. Ça donne :

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
'Enregistrement de l'Image sur le disque C
    Dim oRst3 As DAO.Recordset
    Dim SaveImageTaille As DAO.Recordset
 
    Set oRst3 = CurrentDb.OpenRecordset("SELECT [Image] FROM [TblGroupe_Taille] WHERE [Num_Groupe]='" & ChoixGroupeTaille & "'", _
            dbOpenSnapshot)
    Set SaveImageTaille = oRst3.Fields("Image").Value
 
    While Not SaveImageTaille.EOF
        SaveImageTaille.Fields("FileData").SaveToFile _
                  "C:\"
        SaveImageTaille.MoveNext
 
    Wend
 
    oRst3.Close
    Set oRst3 = Nothing
    Set SaveImageTaille = Nothing
 
 
'Récupération de l'Image du disque dans la base et suppression de l'Image sur le disque
    Dim oRst4 As DAO.Recordset
    Dim LoadImageTaille As DAO.Recordset
 
    Set oRst4 = CurrentDb.OpenRecordset("SELECT [Photo_Groupe_Taille] FROM [TblPlante] WHERE [Nom_Botanique]='" & NomPlante & "'")
 
    oRst4.Edit
    Set LoadImageTaille = oRst4.Fields("Photo_Groupe_Taille").Value
 
    LoadImageTaille.Delete
    LoadImageTaille.AddNew
    LoadImageTaille.Fields("FileData").LoadFromFile "c:\" & ChoixGroupeTaille & ".bmp"
    LoadImageTaille.Update
    oRst4.Update
 
    Kill "c:\" & ChoixGroupeTaille & ".bmp"
 
    oRst4.Close
    Set oRst4 = Nothing
    Set LoadImageTaille = Nothing
Ce code fonctionne très bien, par contre il est un peut long et comme j'ai beaucoup d'enregistrement, j'ai peur qu'il ralentisse le programme.

Si tu as des conseils ou une autre façon de faire, je suis preneur.

Merci encore de venir à mon aide.
A +
Oxopor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 14h23   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Désolé pas de meilleur idée que la la tienne.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h59   #5
Invité régulier
 
Homme
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 9
Points : 9
Ok, merci.

A+
Oxopor 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 21h33.


 
 
 
 
Partenaires

Hébergement Web