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

IHM Discussion :

Formulaire exportant des données vers Excel


Sujet :

IHM

  1. #1
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut Formulaire exportant des données vers Excel
    Salut à tous,

    Je vous le dis d'emblée : pour moi Access, ça remonte à loin alors veuillez m'excuser si je suis un peu lent du bulbe ou que je n'ai pas certaines notions inées d'un habitué de l'outil. Merci de votre compréhension.

    Je souhaite savoir s'il est possible depuis un formulaire Access d'exécuter une requête et de sortir le résultat de cette requête sous la forme d'un fichier Excel (ou du csv pourquoi pas...).

    En gros, dans formulaire, j'indique des infos filtrantes comme un type ou une date. Quand j'appuie sur un bouton, ça exécute une requête à partir des données saisies. Et paf! (Ca fait des Chocapics! ... Pardon!) Ca fait un fichier Excel avec les lignes demandées.

    C'est possible? Comment?

    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Vous pouvez déjà regarder ici :

    http://access.developpez.com/faq/?pa...TblAccessExcel

  3. #3
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Merci. Ca ressemble à ce que je veux faire mais sans le paramétrage de la requête via le formulaire.

    Comment faire pour récupérer la valeur des champs de mon formulaire pour les passer en paramétrage de ma requete?

    Mon formulaire se trouve dans mon application Access. Y a-t-il un moyen de demander à ouvrir cette application sans préciser de chemin en dur?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAccess.OpenCurrentDatabase 'Application Acces courante
    Même chose pour le chemin de génération du fichier Excel. Peut-on demander à l'utilisateur où il souhaite que le fichier soit placé au lieu de mettre le chemin en dur dans le code?

  4. #4
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Est-ce que je peux mettre une requete directement à la place de "requête3"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DoCmd.TransferSpreadsheet acExport, , "requête3", " D:\EtudesSuite.xls ", False, ""
    Une requête comme celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * From Echange Where criticite = 5 and statut = 'En cours' and reponse = 'Oui'
    Que je construit dans un script VBA à partir du formulaire. Comme ça :
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
        'Debug Mode
        Dim debugmode As Boolean
        debugmode = True
     
        'Si on est en debug mode afficher les valeurs de tous les éléments du formulaire
        If debugmode Then
            Message = _
                "Toutes les banques : " & checkToutes & vbCrLf & _
                "Criticite " & listCriticite & vbCrLf & _
                "Statut " & listStatut.Column(1) & vbCrLf & _
                "BPALS " & checkBPALS & vbCrLf & _
                "BPATL " & checkBPATL & vbCrLf & _
                "BPCA " & checkBPCA & vbCrLf & _
                "BPMC " & checkBPMC & vbCrLf & _
                "BPOC " & checkBPOC & vbCrLf & _
                "BPPS " & checkBPPS & vbCrLf & _
                "BPA " & checkBPA & vbCrLf & _
                "BP2L " & checkBP2L & vbCrLf & _
                "BPBFC " & checkBPBFC & vbCrLf & _
                "BPPO " & checkBPPO & vbCrLf & _
                "BPN " & checkBPN & vbCrLf & _
                "BPVF " & checkBPVF & vbCrLf & _
                "BPLC " & checkBPLC & vbCrLf & _
                "BPAz " & checkBPAz & vbCrLf & _
                "BPSO " & checkBPSO & vbCrLf & _
                "BPPC " & checkBPPC & vbCrLf & _
                "BPRi " & checkBPRi
            Style = vbOKOnly
            titre = "DEBUG MODE!"
            MsgBox Message, Style, titre
        End If
     
        '========================================================
        ' BANQUES
        '========================================================
        'Créer un tableau pour stocker les banques souhaitées
        Dim arrayBanques(1 To 17) As String
        Dim sqlClauseWhereBanque As String
     
        'Si toutes les banques ont été demandées pas de clause where
        If checkToutes Then
            clauseSQLWhereBanque = ""
        'Sinon, on construit une clause Where
        Else
     
            'Indice pour le tableau
            Dim i As Integer
            i = 1
     
            'Vérifier toutes les cases à cocher une par une
            If checkBPALS Then
                arrayBanques(i) = "BPALS"
                i = i + 1
            End If
            If checkBPATL Then
                arrayBanques(i) = "BPATL"
                i = i + 1
            End If
            If checkBPCA Then
                arrayBanques(i) = "BPCA"
                i = i + 1
            End If
            If checkBPMC Then
                arrayBanques(i) = "BPMC"
                i = i + 1
            End If
            If checkBPOC Then
                arrayBanques(i) = "BPOC"
                i = i + 1
            End If
            If checkBPPS Then
                arrayBanques(i) = "BPPS"
                i = i + 1
            End If
            If checkBPA Then
                arrayBanques(i) = "BPA"
                i = i + 1
            End If
            If checkBP2L Then
                arrayBanques(i) = "BP2L"
                i = i + 1
            End If
            If checkBPBFC Then
                arrayBanques(i) = "BPBFC"
                i = i + 1
            End If
            If checkBPPO Then
                arrayBanques(i) = "BPPO"
                i = i + 1
            End If
            If checkBPN Then
                arrayBanques(i) = "BPN"
                i = i + 1
            End If
            If checkBPVF Then
                arrayBanques(i) = "BPVF"
                i = i + 1
            End If
            If checkBPLC Then
                arrayBanques(i) = "BPLC"
                i = i + 1
            End If
            If checkBPAz Then
                arrayBanques(i) = "BPAz"
                i = i + 1
            End If
            If checkBPSO Then
                arrayBanques(i) = "BPSO"
                i = i + 1
            End If
            If checkBPPC Then
                arrayBanques(i) = "BPPC"
                i = i + 1
            End If
            If checkBPRi Then
                arrayBanques(i) = "BPRi"
                i = i + 1
            End If
     
            'Initialisation de la clause where
            sqlClauseWhereBanque = " banque in ("
     
            Dim nbBanquesDemandees As Integer
            nbBanquesDemandees = 0
     
            'Boucler sur le tableau pour trouver les banques qui ont été demandées et construire la clause where
            For j = 1 To 17 Step 1
                If Not arrayBanques(j) = "" Then
                    sqlClauseWhereBanque = sqlClauseWhereBanque & "'" & arrayBanques(j) & "',"
                    nbBanquesDemandees = nbBanquesDemandees + 1
                End If
            Next j
     
            'Si aucune banque n'a été sélectionnée alors mettre à vide la clause
            If nbBanquesDemandees = 0 Then
                sqlClauseWhereBanque = ""
            Else
                'Supprimer la dernière virgule et ajouter une parenthèse fermante
                sqlClauseWhereBanque = Left(sqlClauseWhereBanque, Len(sqlClauseWhereBanque) - 1) & ") "
     
                'Afficher la requete si on est en debug mode
                If debugmode Then
                    MsgBox sqlClauseWhereBanque, Style, titre
                End If
            End If
     
        End If
     
        '=======================================================
        'CRITICITE
        '=======================================================
        Dim sqlClauseWhereCriticite As String
        sqlClauseWhereCriticite = ""
        If listCriticite Then
            sqlClauseWhereCriticite = " criticite = " & listCriticite.Value & " "
        End If
     
        'Afficher la clause de criticite si on est en debug mode
        If debugmode Then
            MsgBox sqlClauseWhereCriticite, Style, titre
        End If
     
        '=======================================================
        'STATUT
        '=======================================================
        Dim sqlClauseWhereStatut As String
        If listStatut Then
            sqlClauseWhereStatut = " statut = '" & listStatut.Column(1) & "' "
        End If
     
        'Afficher la clause de Statut si on est en debug mode
        If debugmode Then
            MsgBox sqlClauseWhereStatut, Style, titre
        End If
     
        '=======================================================
        'REPONSE ATTENDUE
        '=======================================================
        Dim sqlClauseWhereReponseAttendue As String
        If checkReponse Then
            sqlClauseWhereReponseAttendue = " reponseAttendue = 'Oui' "
        Else
            sqlClauseWhereReponseAttendue = " reponseAttendue = 'Non' "
        End If
     
        'Afficher la clause de ReponseAttendue si on est en debug mode
        If debugmode Then
            MsgBox sqlClauseWhereReponseAttendue, Style, titre
        End If
     
        '=======================================================
        'CONSTRUCTION DE LA REQUETE
        '=======================================================
        Dim requete As String
        requete = "Select * from Echange "
     
        'Si aucune clause n'est à ajouter on passe directement à l'exécution de la requête
        If sqlClauseWhereBanque = "" And sqlClauseWhereCriticite = "" _
            And sqlClauseWhereStatut = "" And sqlClauseWhereReponseAttendue = "" Then
            GoTo Execution_Requete
        Else
            requete = requete & " WHERE "
            If Not sqlClauseWhereBanque = "" Then
                requete = requete & sqlClauseWhereBanque & " and"
            End If
     
            If Not sqlClauseWhereCriticite = "" Then
                requete = requete & sqlClauseWhereCriticite & " and"
            End If
     
            If Not sqlClauseWhereStatut = "" Then
                requete = requete & sqlClauseWhereStatut & " and"
            End If
     
            If Not sqlClauseWhereReponseAttendue = "" Then
                requete = requete & sqlClauseWhereReponseAttendue & " and"
            End If
        End If
     
        'Supprimer le dernièr And de la requete
        requete = Left(requete, Len(requete) - 4)
     
        'Afficher la requete si on est en debug mode
        If debugmode Then
            MsgBox requete, Style, titre
        End If


    Pour ouvrir la base de connées courante, j'ai trouvé la méthode CurDir à la quelle je concatène le nom du fichier .mdb ou .xls.

Discussions similaires

  1. exporter des données vers excel
    Par joe370 dans le forum VBA Access
    Réponses: 6
    Dernier message: 28/06/2007, 13h16
  2. [Tableaux] Exporter des données vers Excel
    Par SkyBack dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2007, 16h55
  3. exporter des données vers Excel
    Par vautour29 dans le forum Access
    Réponses: 10
    Dernier message: 12/12/2006, 17h15
  4. [En cours]Exporter des données vers Excel
    Par Muhad'hib dans le forum Contribuez
    Réponses: 2
    Dernier message: 12/01/2006, 14h25
  5. exporter des données vers EXCEL!
    Par JauB dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/11/2005, 15h13

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