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 :

Faire apparaitre la valeur d'un contrôle dans le nom d'un fichier excel crée. [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 45
    Points
    45
    Par défaut Faire apparaitre la valeur d'un contrôle dans le nom d'un fichier excel crée.
    Bonjour,

    Je voudrais savoir si il est possible de sortir un fichier excel dont le nom contienne la valeur d'un champ d'un formulaire.

    En gros dans mon test j'ai crée un formulaire avec un champ "DateEntree" et un bouton "test". Sur clic du bouton je voudrais crée un fichier excel (ça pas de problèmes) ET dont le nom contienne la date qui apparait dans le contrôle (et là problème).

    Voici le code que j'ai testé :

    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
    Private Sub btnTest_Click()
     
    Dim SQL As String
    Dim qd As QueryDef
     
    SQL = "SELECT Entree.NEntree, Entree.DateEntree, Entree.NProjet, Entree.NAttribution , Entree.NUtilisateur, Entree.NCommandeMaxima, Entree.LieuE, EntreeDetail.NProduit, Produit.Designation, Produit.RefFournisseur, EntreeDetail.QteEntree, EntreeDetail.PxUnitaire FROM Produit INNER JOIN (Entree INNER JOIN EntreeDetail ON Entree.NEntree = EntreeDetail.NEntree) ON Produit.NProduit = EntreeDetail.NProduit WHERE EntreeDetail.QteEntree>0 "
    SQL = SQL & " And Entree!DateEntree=#" & Format(DateEntree, "MM/DD/YYYY") & "#"
    SQL = SQL & ";"
     
    Debug.Print SQL
     
    Set qd = CurrentDb.CreateQueryDef("Requete_Entree", SQL)
    DoCmd.OutputTo acQuery, "Requete_Entree", "MicrosoftExcelBiff8(*.xls)", "C:\Documents and Settings\guest\Mes documents\Entree_" & DateEntree & ".xls", False, "", 0
    DoCmd.DeleteObject acQuery, "Requete_Entree"
     
     
    End Sub
    Le code s'arrête sur la ligne DoCmd.OutputTo avec "Erreur 2302 : Ne peut enregistrer les résultats dans le fichier sélectionné."

    J'ai essayé plusieurs types de syntaxes sans plus de succès. Ce que je veux faire est-il possible et si oui comment?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Ta syntaxe est correct.......simplement c'est le nom de ton fichier qui n'est pas conforme....

    En effet dans ton exemple, le fichier XLS généré aurait comme nom :

    "Entree_29/07/2009.xls"

    ...donc modifie le format de la date en la transformant par exemple en :
    - 29_07_2009
    - 29072009
    - 29JUL09

    Pour travailler sur des chaînes de caractères.....une bonne adresse (parmi d'autres...):
    Comment extraire une partie d'une chaîne de caractères ?

    à toi de voir.......
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Points : 45
    Points
    45
    Par défaut
    Merci de ta réponse, effectivement je n'ai eu qu'à remplacer le code par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OutputTo acQuery, "Requete_Entree", "MicrosoftExcelBiff8(*.xls)", "C:\Documents and Settings\guest\Mes documents\Entree" & Format(DateEntree, "DDMMYYYY") & ".xls", False, "", 0
    et ça fonctionne parfaitement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/12/2014, 21h07
  2. Réponses: 5
    Dernier message: 01/07/2010, 18h02
  3. Réponses: 1
    Dernier message: 23/09/2008, 18h44
  4. Réponses: 4
    Dernier message: 16/08/2006, 14h01
  5. Réponses: 3
    Dernier message: 05/08/2005, 19h34

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