Recordset VB ACCESS vers Feuille Excel

Résolu
Signaler
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
comment recuperer dans excel la valeur d'un recordset d'access ?

dans le code vb d'access, j'aimerai ouvrir un fichier excel et lui coller chaque valeur de mon recordset par onglet.
j'arrive à ouvrir excel renommer l'onglet et le classeur mais je n'arrive à rien mettre de-dans. (mes resultats ressemblent à des tables)

c possible ?

7 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
salut,

Si tu as besoin d un recordset mais en faisant comme je t ai mis dans le premier post, tu devrais y arrive.
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
3
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

A premiere vue tout est possible, comment tu t y prends:

- as tu des erreurs ou simplement tu ne sais pas le faire ?

Donne nous un tit bout de code
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

Dim bd As DAO.Database
Dim rs As DAO.Recordset
Dim sql As String
Dim xl As New Excel.Application

Set bd = CurrentDb
sql = "SELECT * FROM matable WHERE nom='" & Me.E_Nom & "'"
Set rs = bd.OpenRecordset(sql)

xl.Workbooks.Open Filename:="c:\Documents and Settings\essai.xls"

xl.Visible = True
xl.Sheets.Add
xl.ActiveSheet.Name = Me.E_Nom
xl.ActiveWorkbook.SaveAs "c:\Documents and Settings" & Me.E_Nom

c là que j'aimerai rentrer la valeur du recordset, dans l'onglet que je viens de renommer

non j'ai pas d'erreur, je sais po faire
0
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
re,

Essaie:
rs.open 'CA ouvre le recordset
if rs.eof and rs.bof then  ' TEste si il y a rellement des valeur dans le rs
  
else
  Do Until rs.eof   ' parcours tout le recordset
      TonONglet.Name = rs!TonChamp  '       TonONglet.Name (ou la propriete que ce soit ;))
   rs.movenext ' PErmet d aller a la 'ligne' suivant du recordset
  loop
end if

rs.close

Voila, j sais pas si ca peut t aider ;)

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

je veux juste copier le resultat de sql = "SELECT * FROM matable WHERE nom='" & Me.E_Nom & "'" dans la feuille excel que je viens de renommer.

merci
0
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
re,

Oui, d accord mais le resultat d un SELECT * est donne en plusieur colonnes et il se peut aussi en plusieur ligne (Ici peu etre pas grace au WHERE).

Avec un select * qui retournerait 3 colonnes (Nom, PRenom, Age)

rs!Nom: C est la valeur du champ nom du recordset
rs!Prenom: celle nu prenom etc...

Si tu veux qu un seul champ et bien dans la requete SQL remplace le * par le nom du champ et apres rs!Nomchamp

Et ca normalement ca marche

Voila,
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

en fait je veux copier tous les champs et toutes les colonnes dans ma feuille excel.
j'ai peut etre po besoin d'utiliser un recordset ?
au final je voudrais copier chaque selection via la condition where dans chaque onglet avec comme nom d'onglet le nom de la condition where (ex where nom = un nom)
0