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 :

Automation Excel - Ouverture requete


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut Automation Excel - Ouverture requete
    bonjour,

    j'ai récupéré le code pour faire une automation d'access à excel.

    cependant je voudrais transférer mes données d'une requete et non d'une table.
    mon projet est la réalisation d'une base gérant l'autoévaluation des compétences de personnes. les collaborateurs vont saisir une premiere fois leur autoévaluation dans une ligne de la table. une fois fini, cette ligne est dupliquée (toujours dans la meme table), puis un évaluateur passe pour modifier ce qu'il n'est pas d'accord puis valide. la requete a pour but d'isoler les deux lignes dupliquées (celle saisie par l'utilisateur puis celle par l'évaluateur) grâce à deux questions de filtrage.

    Donc voilà dans le code ci dessous on arrive clairement à ouvrir une base au complet mais pas la requete. Donc je voudrais savoir quelles sont les modifications à faire.

    Je suis débutant en access.

    Pour ce qui est mise en page j'ai compris donc je me débrouillerais derrière.


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Function TransfertExcelAutomation()
     
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Dim I As Long, J As Long
        Dim t0 As Long, t1 As Long
     
        t0 = Timer
        Dim rec As Recordset
     
        Set rec = CurrentDb.OpenRecordset("Clients", dbOpenSnapshot)
     
        'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "Tutoriel"
     
        ' le titre
        '  écriture dans la cellule de ligne 1 et de colonne 1
        xlSheet.Cells(1, 1) = "Export d'une table Access"
     
     
        ' les entetes
        '  .Fields(Index).Name renvoie le nom du champ
        For J = 0 To rec.Fields.Count - 1
            xlSheet.Cells(2, J + 1) = rec.Fields(J).Name
            ' Nous appliquons des enrichissements de format aux cellules
            With xlSheet.Cells(2, J + 1)
                .Interior.ColorIndex = 15
                .Interior.Pattern = xlSolid
                .Borders(xlEdgeBottom).LineStyle = xlContinuous
                .Borders(xlEdgeBottom).Weight = xlThin
                .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
                .HorizontalAlignment = xlCenter
            End With
        Next J
     
        ' recopie des données à partir de la ligne 3
        I = 3
        Do While Not rec.EOF
            For J = 0 To rec.Fields.Count - 1
                ' .Fields(Index).Type renvoie le type du champ
                '   si c'est un Texte (dbText) nous insérons "'" pour
                '   qu'il soit reconnu par Excel comme du Texte
                If rec.Fields(J).Type = dbText Then
                    xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J)
                Else
                    xlSheet.Cells(I, J + 1) = rec.Fields(J)
                End If
            Next J
            I = I + 1
            rec.MoveNext
        Loop
     
        ' code de fermeture et libération des objets
        xlBook.SaveAs "D:\Temp\Feuille.xls"
        xlApp.Quit
        rec.Close
        Set rec = Nothing
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
        t1 = Timer
        Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes"
     
    End Function
    Merci pour vos réponses

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Sur cette ligne tu mets le nom de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rec = CurrentDb.OpenRecordset("Nom requête", dbOpenSnapshot)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut
    j'ai essayé et quand je lance j'ai une erreur qui me demande debogage sur cette ligne précisément. cette erreur m'indique qu'il n'y a pas assez de parametres. par contre quand c'est une table ca passe sans problème.

    la requette a en fait deux criteres qui doit être validés par l'utilisateur. dois je les rajouter quelquepart ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Fait une recherche sur la avec Paramètres.

    Starec

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/09/2008, 18h07
  2. Automation Excel
    Par GoldenEye dans le forum MFC
    Réponses: 2
    Dernier message: 24/05/2005, 15h11
  3. Réponses: 2
    Dernier message: 06/04/2005, 12h01
  4. automation excel : comment indiquer la feuille de travail ?
    Par mat_lefebvre dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 15h14
  5. Automation Excel
    Par cgo dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 19/03/2003, 15h03

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