IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Nommer un export Excel à partir d’un enregistrement ACCESS


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Points : 66
    Points
    66
    Par défaut Nommer un export Excel à partir d’un enregistrement ACCESS
    Bonjour,

    Je voudrais exporter une table ACCESS vers EXCEL.

    Une partie du nom de ce fichier exporté est contenu dans le champ du premier enregistrement précis d’une table:

    Nom = ”DEBUT NOM FICHIER” & VALEUR1

    Où VALEUR1=Valeur du premier enregistrement du champ ”ACTIVITY” de la TABLE1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Sub EXPORT_DATA()
     
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
    Dim SSQL As String
     
    Set db = CurrentDb
     
    SSQL=”SELECT First(TABLE1.ACTIVITY) FROM TABLE1;”
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, "TABLE1", Application.CurrentProject.path, False, "DEBUT NOM FICHIER" & SSQL
     
    End Sub

    J’ai bien essayé la fonction first mais cela ne marche pas.

    Quelqu’un peut m’aider?

    Merci par avance
    MS Excel 2007
    MS Access 2003
    SQL Server Express 2008 R2

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Bonjour,

    Tu peux essayer cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub EXPORT_DATA()
     
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
    Dim SSQL As String
     
    Set db = CurrentDb
     
    '   Ouverture du jeu d'enregistrement de la requête
        Set rst = db.OpenRecordset("SELECT First(TABLE1.ACTIVITY) as FirstActivity FROM TABLE1;")
            If Not rst.EOF Then
                ' récupération de la valeur du champ
                SSQL = rst!FirstActivity
            End If
        rst.Close
        Set rst = Nothing
     
    '   Export dans excel
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, "TABLE1", "Emplacement" & "Fichier excel" & SSQL & ".xls", False
     
    End Sub
    Il faut ensuite déterminer si tu veux ajouter les données dans un fichier excel (auquel cas il te faut gérer le range du transfert) ou créer un fichier par export.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Fantastique!

    Vous êtes réellement éclairé! It works!

    J'ai une dernière petite question : Savez vous si je peux exporter depuis ce même code 2 tables vers le meme fichier Excel ( sous 2 onglets différents évidemment) ?

    Merci par avance
    MS Excel 2007
    MS Access 2003
    SQL Server Express 2008 R2

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Citation Envoyé par piflechien73 Voir le message
    Savez vous si je peux exporter depuis ce même code 2 tables vers le meme fichier Excel ( sous 2 onglets différents évidemment) ?
    Deux solutions pour cela une simple plutôt "rustique" et une un peu plus compliquée mais plus propre.

    La rustique c'est d'utiliser le nom des tables comme discriminant en gardant le même nom de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, "TABLE1", "Emplacement" & "Fichier excel" & SSQL & ".xls", False
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, "TABLE2", "Emplacement" & "Fichier excel" & SSQL & ".xls", False
    End Sub
    Les tables vont s'jouter en tant qu'onglet dans le même fichier.

    Sinon il vous faut gérer le paramètre range de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, "TABLE2"Emplacement" & "Fichier excel" & SSQL & ".xls", False,Range
    Dans ce cas il faut connaitre le nom de la feuille où l'on veut placer les données, la cellule de départ et de mémoire la taille de la matrice.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Merci 1000 fois. Comme sur des roulettes !
    MS Excel 2007
    MS Access 2003
    SQL Server Express 2008 R2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Macro Export Excel à partir formulaire feuille de données
    Par lio33 dans le forum IHM
    Réponses: 1
    Dernier message: 26/01/2012, 10h11
  2. [AC-2007] Export Excel doubler un enregistrement
    Par Marcopololo dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/12/2011, 09h21
  3. [2K8] Nommer onglet Export EXCEL
    Par fufurax dans le forum SSRS
    Réponses: 5
    Dernier message: 27/04/2010, 10h45
  4. Réponses: 1
    Dernier message: 01/08/2006, 09h36
  5. Réponses: 2
    Dernier message: 31/03/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo