Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 30/11/2010, 15h16   #1
Invité de passage
 
442 Valy
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : 442 Valy

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : 3
Points : 3
Par défaut Export d'un sous-formulaire qu'une seule fois

Bonjour.
Je souhaite exporter le recordset d'un sous-formulaire access vers une feuille excel.
L'export fonctionne correctement, mais qu'une seule fois
Lorsque je lance une 2e cet export, le sous-formulaire n'est plus exporté, que du vide.

Voilà mon code pour l'exportation :
Code :
appexcel.Cells(58, 2).CopyFromRecordset rec
J'ai tenté d'ajouter ceci à la fin :
Code :
1
2
3
4
rec.Close
    Set rec = Nothing
    Set wbexcel = Nothing
    Set appexcel = Nothing
Sans succès
Que faut-il faire pour pouvoir réitérer l'exportation autant de fois que l'on veut?


Merci.
valy_442 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 15h50   #2
Invité de passage
 
442 Valy
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : 442 Valy

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : 3
Points : 3
J'ai rajouté " rec.MoveFirst " avant de fermer mes objets. J'arrive maintenant à exporter mon sous-formulaire 1 fois sur 2, ce qui est assez étrange.
Lorsque je change les enregistrements apparaissant dans le sous-formulaire et que je lance l'export : ca n'exporte rien. Je relance une 2e fois: ça exporte!
Quelqu'un sait pourquoi?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
    'Exportation du recordset ss formulaire
 
    appexcel.Cells(58, 2).CopyFromRecordset rec
 
    rec.MoveFirst
 
    ' Ferme les objets
    rec.Close
    Set rec = Nothing
        ' Release Excel references
    Set wbexcel = Nothing
 
    Set appexcel = Nothing
valy_442 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 07h22   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 605
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 605
Points : 30 946
Points : 30 946
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Il faudrait plus de code, car tu ne mets que l'export (CopyFromRecordset), mais comment remplis-tu ton recordset ? Celui-ci est peut-être vide un export sur deux, il faut donc plus d'informations.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 07h57   #4
Invité de passage
 
442 Valy
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : 442 Valy

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : 3
Points : 3
Au début je fais comme ceci:
Code :
Set rec = Forms.formulaire.sous-formulaire.Form.RecordsetClone
Je remplis mon recordset avec tout le sous-formulaire, car je souhaite tout exporter.

Voilà le code entier si ça peut aider :
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
Function exportexcelvb()
 
Dim appexcel As Excel.Application
Dim wbexcel As Excel.Workbook
Dim rec As DAO.Recordset
Set rec = Forms.formulaire.sous-formulaire.Form.RecordsetClone
 
Set appexcel = CreateObject("Excel.Application")
appexcel.Visible = True
Set wbexcel = appexcel.Workbooks.Open(CurrentProject.Path & "\classeur01.xls")
 
appexcel.Sheets("Feuille1").Select
 
    'Exportation du recordset ss formulaire 
    appexcel.Cells(58, 2).CopyFromRecordset rec
 
    rec.MoveFirst
    ' Ferme les objets ADO
    rec.Close
    Set rec = Nothing
 
    Set wbexcel = Nothing
    Set appexcel = Nothing
 
End Function
valy_442 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 08h52   #5
Invité de passage
 
442 Valy
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : 442 Valy

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : 3
Points : 3
Personne ne voit ?
valy_442 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 12h35   #6
Invité de passage
 
442 Valy
Inscription : octobre 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : 442 Valy

Informations forums :
Inscription : octobre 2010
Messages : 31
Points : 3
Points : 3
Bon ben merci quand même
valy_442 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web