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 :

[A-00] Récupération de données par Objet Recordset


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut [A-00] Récupération de données par Objet Recordset
    Bonjour à toutes et tous,

    Je souhaite sélectionner uniquement les enregistrements de la table "Base de données" dont le champ "Donnees_exporter"=Oui et parmi ces enregistrements sélectionnés, récupérer les données de type texte des champs "Photo1", "Photo2" et "Photo3" quand ces champs ne sont pas vides.
    Le code ci-après ne fonctionne pas parfaitement car je récupère uniquement les données dans le cas où les 3 champs Photo1, Photo2, Photo3 d'un enregistrement contiennent du texte.
    Et quand je remplace "OR" par "AND", cela ne fonctionne plus du tout. Pourtant, j'image que ce sont les paramètres de la clause WHERE qui provoquent le dysfonctionnement
    Si quelqu'un peut me mettre sur une piste... Merci !

    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
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
    Dim Adresse1, Adresse2, Adresse3 As String
    Dim Fichier1, Fichier2, Fichier3 As String
     
    Set oDb = CurrentDb
     
    Set oRst = oDb.OpenRecordset("SELECT Photo1,Photo2,Photo3 FROM [Base de données] WHERE (Donnees_exporter)=Yes AND (Photo1) <> '' OR (Photo2) <> '' OR (Photo3) <> ''", dbOpenDynaset)
     
    While Not oRst.EOF
     
    Adresse1 = oRst.Fields("Photo1").Value
    Adresse2 = oRst.Fields("Photo2").Value
    Adresse3 = oRst.Fields("Photo3").Value
     ...
     
    oRst.MoveNext
    Wend

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Une histoire de parenthèses ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT Photo1,Photo2,Photo3 FROM [Base de données] WHERE (Donnees_exporter)=Yes AND ((Photo1 <> '') OR (Photo2 <> '') OR (Photo3 <> ''))

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Bonsoir,

    Merci pour la proposition, mais je n'obtiens plus aucune donnée.
    Je m'arrache les cheveux depuis une heure ! L'objectif est bien de récupérer le texte contenu dans les champs Photo1, Photo2, etc de tous les enregistrements de la table 'Base de données' dont le champ 'donnees_exporter' = oui.

    Et je ne trouve pas une lueur d'espoir dans le tutoriel 'Le langage SQL appliqué à Access'

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

    Essayes True au lieu de Yes.

    Philippe

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Merci de ton attention, Philippe.

    Mais ca ne marche toujours pas.

    Pourtant, je reste persuadé que l'erreur se situe dans la syntaxe de la clause WHERE ...

  6. #6
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Je peux jouer aussi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oRst = oDb.OpenRecordset("SELECT Photo1,Photo2,Photo3 FROM [Base de données] WHERE (Donnees_exporter)=Yes AND Photo1 <> '' AND Photo2 <> '' AND Photo3 <> '');", dbOpenDynaset)
    A+

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    Si j'ai bien compris, voici un test fait avec le QBE

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Base de données].Donnees_exporter, [Base de données].Photo1, [Base de données].Photo2, [Base de données].Photo3
    FROM [Base de données]
    WHERE ((([Base de données].Donnees_exporter)=True) AND (([Base de données].Photo1)<>"")) OR ((([Base de données].Donnees_exporter)=True) AND (([Base de données].Photo2)<>"")) OR ((([Base de données].Donnees_exporter)=True) AND (([Base de données].Photo3)<>""));

    En fait il faut trois lignes de ta valeur booléenne à Vrai et sur chaque des données de test.

    Philippe
    Images attachées Images attachées  

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Voilà que les "maîtres à penser" du forum s'en mêlent et cela ne fonctionne toujours pas

    Merci quand même Gabout

    Cela dit, je ne comprends pas la parenthèse suivie du point-virgule avant la fermeture des guillemets que tu proposes.

    Y-a-t-il une autre façon de procéder ?

    Merci

  9. #9
    Invité
    Invité(e)
    Par défaut
    Re

    As-tu testé ma réponse deux posts au-dessus ?

    Philipe

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Oui, Philippe. J'ai testé tes 2 posts ... sans résultat

    J'ai même essayé un 'mix' de ton code et celui de Gabout ci-dessous, toujours sans résultat c'est-à dire aucune variable retournée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set oRst = oDb.OpenRecordset("SELECT [Base de données].Donnees_exporter, [Base de données].Photo1, [Base de données].Photo2, [Base de données].Photo3
        FROM [Base de données]
        WHERE ((([Base de données].Donnees_exporter)=Yes) And (([Base de données].Photo1) <> '')) Or ((([Base de données].Donnees_exporter)=Yes) And (([Base de données].Photo2) <> '')) Or ((([Base de données].Donnees_exporter)=Yes) And (([Base de données].Photo3) <> ''))", dbOpenDynaset)

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    A mon avis il y a un problème de compréhension, voici la base de test.

    Philippe
    Fichiers attachés Fichiers attachés

  12. #12
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Quand tu dis
    récupérer les données de type texte des champs "Photo1", "Photo2" et "Photo3" quand ces champs ne sont pas vides.
    Est-ce que cela signifie que les 3 champs doivent être non vides ensemble ?

    Désolé Philippe je n'avais pas vu ta réponse ; tu vois, j'ai également un problème de compréhension

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Nickel !

    Je suis passé également par QBE, c'est moins casse-tête.

    Merci pour votre attention et vos bonnes idées. Bonne soirée

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut [A-00] Récupération de données par Objet Recordset (suite)
    Bonjour à toutes et tous,

    Merci beaucoup à Gabout et Philippe Jochmans pour leurs propositions et leur collaboration.

    Je souhaite sélectionner les enregistrements de la table "Base de données" dont le champ "Donnees_exporter"=Oui et parmi ces enregistrements sélectionnés, récupérer les données de type texte des champs "Photo1", "Photo2" et "Photo3" quand ces champs ne sont pas vides. Les variables récupérées serviront ensuite à déplacer les fichiers des photos d'un répertoire à un autre.
    Le code ci-après ne fonctionne pas parfaitement car je récupère uniquement les données dans le cas où les 3 champs Photo1, Photo2, Photo3 d'un enregistrement contiennent simultanément du texte

    Je soupçonne un dysfonctionnement dans la clause WHERE et/ou dans le fait que l'objet RecordSet est déjà ouvert en début de code pour tester s'il y a des données exploitables.
    Si quelqu'un peut me mettre sur une piste... Merci !

    Voici le code complet
    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
    Private Sub Exportation_donnees_Click()
    On Error GoTo Err_Exportation_donnees_Click
     
        'Vérifier si des données sont à exporter
        Dim oRst As DAO.Recordset
        Dim oDb As DAO.Database
     
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT * FROM [Base de données] WHERE (Donnees_exporter)=Yes", dbOpenDynaset)
        If oRst.EOF Then
        MsgBox "Aucune donnée n'est actuellement destinée à être exportée." & Chr(10) & "Veuillez sélectionner des données et recommencer l'opération.", vbOKOnly + vbExclamation, "ECHEC A L'EXPORTATION"
        ' Ouvrir le formulaire "Accueil"
        DoCmd.OpenForm "Accueil", acNormal, "", "", , acNormal
        Exit Sub
     
        Else
     
        'Vider le contenu du répertoire "Envoi" dans la corbeille
        Call DansCorbeille("c:\cmi\envoi\*.*", Me.hwnd)
     
        DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE * FROM Importation", -1
        DoCmd.OpenQuery "ExportationDonnees", acViewNormal, acEdit
        DoCmd.OpenQuery "Ajout_print_donnees", acViewNormal, acEdit
        DoCmd.OpenQuery "Ajout_visualisation", acViewNormal, acEdit
        DoCmd.OpenQuery "Suppress_diffusion_donnees", acViewNormal, acEdit
        Beep
        CreateObject("Wscript.shell").PopUp "Données exportées avec succès", 1, "Information", vbInformation
        DoCmd.SetWarnings True
     
    'Récupération des adresses des photos importées dans la base de données
    'Les adresses des photos sont contenues dans les champs Photo1, Photo2 et Photo3 de la requête QryExport
        Dim Adresse1, Adresse2, Adresse3 As String
     
        Dim Fichier1, Fichier2, Fichier3 As String
     
        Dim sEmplacementInitial As String, sEmplacementFinal As String
        Dim sEmplacementInitial1 As String, sEmplacementFinal1 As String
        Dim sEmplacementInitial2 As String, sEmplacementFinal2 As String
        Dim sEmplacementInitial3 As String, sEmplacementFinal3 As String
     
        Set oRst = oDb.OpenRecordset("SELECT Photo1,Photo2,Photo3 FROM [Base de données] WHERE (Donnees_exporter)=Yes AND (Photo1) <> '' OR (Photo2) <> '' OR (Photo3) <> ''", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse1 = oRst.Fields("Photo1").Value
        Adresse2 = oRst.Fields("Photo2").Value
        Adresse3 = oRst.Fields("Photo3").Value
     
    'Sélection du fichier des photos dans Adresse1, Adresse2 et Adresse3
    'Sachant que toutes les photos se trouvent dans le répertoire c:\cmi\photos\
        Fichier1 = Mid(Adresse1, 15)
        Fichier2 = Mid(Adresse2, 15)
        Fichier3 = Mid(Adresse3, 15)
     
    'Copie de la BD "Echange_donnees" et des adresses des photos dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial1 = Adresse1
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier1)
        sEmplacementFinal1 = "c:\cmi\envoi\" & Fichier1
        sEmplacementInitial2 = Adresse2
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier2)
        sEmplacementFinal2 = "c:\cmi\envoi\" & Fichier2
        sEmplacementInitial3 = Adresse3
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier3)
        sEmplacementFinal3 = "c:\cmi\envoi\" & Fichier3
     
        FileCopy sEmplacementInitial1, sEmplacementFinal1
        FileCopy sEmplacementInitial2, sEmplacementFinal2
        FileCopy sEmplacementInitial3, sEmplacementFinal3
     
    oRst.MoveNext
     
    Wend
     
        sEmplacementInitial = "c:\cmi\Echange_donnees.mdb"
        sEmplacementFinal = "c:\cmi\envoi\Echange_donnees.mdb"
     
        FileCopy sEmplacementInitial, sEmplacementFinal
     
        'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing

  15. #15
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Et en ajoutant des parenthèses ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Set oRst = oDb.OpenRecordset("SELECT Photo1,Photo2,Photo3 FROM [Base de données] WHERE (Donnees_exporter)=Yes AND ((Photo1) <> '' OR (Photo2) <> '' OR (Photo3) <> '')", dbOpenDynaset)

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Non, cela ne fonctionne toujours pas.

    D'après toi, le fait que le Recordset soit ouvert en début de code ne pourrait pas poser problème ?

    Pour le sql, le but est d'obtenir l'équivalent de la requête écrite par Philippe Jochmans dans le message #7

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Je suis parvenu à cerner le problème et à trouver une solution pas très heureuse en écriture mais fonctionnelle en dupliquant les codes.
    Le premier problème se situait au niveau des requêtes intervenant sur la base de données déjà ouverte par le RecordSet. La solution a donc été de déplacer ces requêtes en fin de code.
    Le deuxième problème se situait dans la requête sql du recordset. A l'exécution de la commande, un message signalant un problème de type 'Null' était parfois renvoyé. J'ai contourné le problème en multipliant la boucle du recordset autant de fois qu'il y a de champs photo à récupérer.

    Merci à ceux qui ont fait avancer le schmilblic. A+

    Voici le code fonctionnel :
    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
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    'Vérifier si des données sont à exporter
        Dim oRst As DAO.Recordset
        Dim oDb As DAO.Database
     
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT * FROM [Base de données] WHERE (Donnees_exporter)=Yes", dbOpenDynaset)
     
    If oRst.EOF Then
    MsgBox "Aucune donnée n'est actuellement destinée à être exportée." & Chr(10) & "Veuillez sélectionner des données et recommencer l'opération.", vbOKOnly + vbExclamation, "ECHEC A L'EXPORTATION"
    ' Ouvrir le formulaire "Accueil"
    DoCmd.OpenForm "Accueil", acNormal, "", "", , acNormal
    Exit Sub
     
    Else
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Vider le contenu du répertoire "Envoi" dans la corbeille
        Call DansCorbeille("c:\cmi\envoi\*.*", Me.hwnd)
     
    'Variables
        Dim Adresse1, Adresse2, Adresse3, Adresse4, Adresse5, Adresse6 As String
     
        Dim Fichier1, Fichier2, Fichier3, Fichier4, Fichier5, Fichier6 As String
     
        Dim sEmplacementInitial As String, sEmplacementFinal As String
        Dim sEmplacementInitial1 As String, sEmplacementFinal1 As String
        Dim sEmplacementInitial2 As String, sEmplacementFinal2 As String
        Dim sEmplacementInitial3 As String, sEmplacementFinal3 As String
        Dim sEmplacementInitial4 As String, sEmplacementFinal4 As String
        Dim sEmplacementInitial5 As String, sEmplacementFinal5 As String
        Dim sEmplacementInitial6 As String, sEmplacementFinal6 As String
     
    'Récupération adresse photo1
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo1 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo1) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse1 = oRst.Fields("Photo1").Value
     
    'Sélection du fichier dans Adresse1
        Fichier1 = Mid(Adresse1, 15)
     
    'Copie du fichier photo1 dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial1 = Adresse1
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier1)
        sEmplacementFinal1 = "c:\cmi\envoi\" & Fichier1
     
        FileCopy sEmplacementInitial1, sEmplacementFinal1
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Récupération adresse photo2
     
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo2 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo2) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse2 = oRst.Fields("Photo2").Value
     
    'Sélection du fichier dans Adresse2
        Fichier2 = Mid(Adresse2, 15)
     
    'Copie du fichier photo2 dans le répertoire c:\cmi\envoi
        sEmplacementInitial2 = Adresse2
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier2)
        sEmplacementFinal2 = "c:\cmi\envoi\" & Fichier2
     
        FileCopy sEmplacementInitial2, sEmplacementFinal2
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Récupération adresse photo3
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo3 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo3) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse3 = oRst.Fields("Photo3").Value
     
    'Sélection du fichier dans Adresse3
     
        Fichier3 = Mid(Adresse3, 15)
     
    'Copie du fichier photo3 dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial3 = Adresse3
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier3)
        sEmplacementFinal3 = "c:\cmi\envoi\" & Fichier3
     
        FileCopy sEmplacementInitial3, sEmplacementFinal3
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Récupération adresse photo4
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo4 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo4) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse4 = oRst.Fields("Photo4").Value
     
    'Sélection du fichier dans Adresse4
        Fichier4 = Mid(Adresse4, 15)
     
    'Copie du fichier photo4 dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial4 = Adresse4
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier4)
        sEmplacementFinal4 = "c:\cmi\envoi\" & Fichier4
     
        FileCopy sEmplacementInitial4, sEmplacementFinal4
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Récupération adresse photo5
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo5 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo5) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse5 = oRst.Fields("Photo5").Value
     
    'Sélection du fichier dans Adresse5
        Fichier5 = Mid(Adresse5, 15)
     
    'Copie du fichier photo5 dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial5 = Adresse5
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier5)
        sEmplacementFinal5 = "c:\cmi\envoi\" & Fichier5
     
        FileCopy sEmplacementInitial5, sEmplacementFinal5
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    'Récupération adresse photo6
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("SELECT Photo6 FROM [Base de données] WHERE ((Donnees_exporter) = True AND (Photo6) <> '')", dbOpenDynaset)
     
        While Not oRst.EOF
     
        Adresse6 = oRst.Fields("Photo6").Value
     
    'Sélection du fichier dans Adresse1
        Fichier6 = Mid(Adresse6, 15)
     
    'Copie du fichier photo6 dans le répertoire c:\cmi\envoi
     
        sEmplacementInitial6 = Adresse6
    'Emplacement final est c:\cmi\envoi\"nom de la photo"
    'Concaténation du tronc commun c:\cmi\envoi et du nom de la photo (=Fichier6)
        sEmplacementFinal6 = "c:\cmi\envoi\" & Fichier6
     
        FileCopy sEmplacementInitial6, sEmplacementFinal6
     
    oRst.MoveNext
     
    Wend
     
    'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
     
    DoEvents
     
        DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE * FROM Importation", -1
        DoCmd.OpenQuery "ExportationDonnees", acViewNormal, acEdit
        DoCmd.OpenQuery "Ajout_print_donnees", acViewNormal, acEdit
        DoCmd.OpenQuery "Ajout_visualisation", acViewNormal, acEdit
        DoCmd.OpenQuery "Suppress_diffusion_donnees", acViewNormal, acEdit
        Beep
        CreateObject("Wscript.shell").PopUp "Données exportées avec succès", 1, "Information", vbInformation
        DoCmd.SetWarnings True
     
    'Copie du fichier 'Echange_donnees' dans répertoire c:\cmi\envoi
        sEmplacementInitial = "c:\cmi\Echange_donnees.mdb"
        sEmplacementFinal = "c:\cmi\envoi\Echange_donnees.mdb"
     
        FileCopy sEmplacementInitial, sEmplacementFinal
     
    'Changer extension du fichier Echange_donnees de .mdb en .txt"
        Name "c:\cmi\envoi\Echange_donnees.mdb" As "c:\cmi\envoi\Echange_donnees.txt"
     
    End If

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

Discussions similaires

  1. [SQL] récupération des données par le php
    Par soumia1988 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2007, 14h57
  2. Récupération de données par fourchette
    Par rota44 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2007, 10h14
  3. récupération de données par excel
    Par jeymer dans le forum Firebird
    Réponses: 4
    Dernier message: 29/08/2007, 12h33
  4. Réponses: 8
    Dernier message: 11/07/2006, 14h20
  5. [AJAX] probleme de récupération de donnée par GET
    Par Death83 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/06/2006, 17h00

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