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

Access Discussion :

envoi dans un meme fichier sur deux feuilles differentes le contenu de deux requetes


Sujet :

Access

  1. #1
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut envoi dans un meme fichier sur deux feuilles differentes le contenu de deux requetes
    remoi, j'ai lu quelque part mais pas moyen de retrouver la fonction, je m'xplique j'effectue deux requetes d'envoi dans deux fichiers csv et l'on me demande d'afficher dans un seul fichier , il y avait une fonction qui pouvait inscrire soit en page 1 soit en page 2 , mais je me souvient plus, à moins que c'etait en format xls mais csv et xls ont le meme decor

    comment faire.
    voici le code qui utilise deux fonctions pourenvoyer le contenu ces deux fonctions doivent etre separé (demande de la amintenance)
    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
     
    '-----------------------------------------------------------
    '  Check if  datum of dtafrais  are already sent
    '-----------------------------------------------------------
    Public Function Application_envoi_frais()
     
        Dim dbs         As Database
        Dim rds         As Recordset
        Dim strsql      As String
        Dim strFichier  As String
        Dim mystr       As String
        Dim mystrT      As String
        Dim mydate      As Date
        Dim MyTime
     
        mydate = Date
        MyTime = Time
        mystrT = Format(MyTime, "h_m_s")
        mystr = Format(mydate, "  ddmmyyyy")
        strFichier = "u:\frais\document" & "_" & mystr & "_" & mystrT & ".csv"
     
     
     
        strsql = "SELECT * FROM dtaFrais WHERE (((DateDiff('d',[incidentdate],Now()))>=1)and flag= no);"
     
        Set dbs = CurrentDb
        Set rds = dbs.OpenRecordset(strsql, dbOpenSnapshot)
     
        ''' Stop if the record doesn't exist anymore
        If rds.EOF And rds.BOF Then
            rds.Close
            Set rds = Nothing
            dbs.Close
            Set dbs = Nothing
     
            Exit Function
        Else
     
     
     
        DoCmd.OutputTo acOutputQuery, "qdfsend", acFormatXLS, strFichier
        'DoCmd.TransferText acExportDelim, "qdfsend.xls", "qdfsend", strFichier, False
     
     
     
        'elimine le message d'avertissement de l'update
        DoCmd.SetWarnings False
        'execute l'update sous certaines conditions
        DoCmd.RunSQL "UPDATE dtaFrais SET dtaFrais.flag = Yes WHERE (((DateDiff('d',[incidentdate],Now()))>=1) And flag=No);"
     
        End If
     
        ''' Open the recordset
        'Set dbs = CurrentDb
        'Set rdsfiles = dbs.OpenRecordset(strsql, dbOpenSnapshot)
     
        Set rds = Nothing
        'close and reset
        dbs.Close
        Set dbs = Nothing
     
    End Function
    '-----------------------------------------------------------
    '  Check if  datum of dtafiles  are already sent for GED
    '-----------------------------------------------------------
    Public Function Application_envoi_ged()
     
        Dim dbs         As Database
        Dim rds         As Recordset
        Dim strsql      As String
        Dim strFichier As String
        Dim mystr As String
        Dim mydate As Date
     
     
        mydate = Date
        mystr = Format(mydate, "  ddmmyyyy")
        strFichier = "u:\ged\documentged" & "_" & mystr & "_" & Time & ".csv"
     
     
     
     
        strsql = "SELECT * FROM dtafiles WHERE ( (((DateDiff('d',[interestsdate1],Now()))>=1) And flag1=No)or (((DateDiff('d',[interestsdate2],Now()))>=1) And flag2=No) or(((DateDiff('d',[interestsdate3],Now()))>=1) And flag3=No)or (((DateDiff('d',[interestsdate4],Now()))>=1) And flag4=No));"
     
        Set dbs = CurrentDb
        Set rds = dbs.OpenRecordset(strsql, dbOpenSnapshot)
     
        ''' Stop if the record doesn't exist anymore
        If rds.EOF And rds.BOF Then
            rds.Close
            Set rds = Nothing
            dbs.Close
            Set dbs = Nothing
     
            Exit Function
        Else
        DoCmd.TransferText acExportDelim, "", "qdfsendged", strFichier, True
     
        'elimine le message d'avertissement de l'update
        DoCmd.SetWarnings False
        'execute l'update sous certaines conditions
        DoCmd.RunSQL "UPDATE dtaFiles SET dtaFiles.flag1 = Yes  WHERE  (((DateDiff('d',[interestsdate1],Now()))>=1) And flag1=No);"
        DoCmd.RunSQL "UPDATE dtaFiles SET dtaFiles.flag2 = Yes  WHERE  (((DateDiff('d',[interestsdate2],Now()))>=1) And flag2=No);"
        DoCmd.RunSQL "UPDATE dtaFiles SET dtaFiles.flag3 = Yes  WHERE  (((DateDiff('d',[interestsdate3],Now()))>=1) And flag3=No);"
        DoCmd.RunSQL "UPDATE dtaFiles SET dtaFiles.flag4 = Yes  WHERE  (((DateDiff('d',[interestsdate4],Now()))>=1) And flag4=No);"
     
        End If
     
        ''' Open the recordset
        'Set dbs = CurrentDb
        'Set rdsfiles = dbs.OpenRecordset(strsql, dbOpenSnapshot)
     
        Set rds = Nothing
        'close and reset
        dbs.Close
        Set dbs = Nothing
     
    End Function
    c'est peut etre pour vous un peu confus

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    2 solutions rapides.

    1-faire une requete UNION à base de tes 2 requetes puis faire l'export.

    2-lancer un batch DOS via le shell

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy fichier1.csv+fichier2.csv fichierGlobal.csv
    Cordialement,

  3. #3
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    trop complexe pour moi pour l'instant

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    et qu'est-ce qui serait moins complexe pour toi ?

    C'est pour éviter de te donner une solution qui ne te conviendra pas ...
    Citation Envoyé par laurent.w
    trop complexe pour moi pour l'instant

  5. #5
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    je ne tiens pas à ce u'on me donne la solution, je veux simplement des pistes

    comme dit le proverbe en gros:

    ne lui donne pas le poisson mais apprends le à pecher

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    La requête UNION est très facile à faire.

    On prend 2 string SQL (select.....From....Where....) puis entre chacune d'elle on ajoute le mot clef UNION, ce qui donne :

    "Select .... From.... UNION Select .... From ....;"

    Seule contraite le nombre de champ doit être équivalent (x champs dans le premier select, x champs dans le deuxième)

    En ce qui concerne le batch c'est juste une concaténation des 2 fichiers via la commande copy dont je t'ai fourni la syntaxe précédemment. Via la fonction Shell de VBA tu peux paramétrer tes noms de fichiers en entrée et celui en sortie.

    Y a pas plus simple que ces 2 méthodes.

  7. #7
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    ok je ferais çà par contre question à 10 sous , j'appelle ces deux progs l'un a la suite pour transferer , le pb est qu'il ne me transfere que le premier (le nom du deuxième a été remodifié : document devient documentged)
    pourquoi cet oubli alors que le code est equivalent au premier

    je fais appel à l'un ou à l'autre, aucun souci mais les deux l'un après l'autre pas moyen

    j'ai couplé les deux progs çà marche, par contre çà m'interesseerait de savoir pour quoi lorsque je les separe çà ne fonctionne pas

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    Peut-être la différence entre ces 2 codes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        mystrT = Format(MyTime, "h_m_s")
        mystr = Format(mydate, "  ddmmyyyy")
        strFichier = "u:\frais\document" & "_" & mystr & "_" & mystrT & ".csv"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mydate = Date
        mystr = Format(mydate, "  ddmmyyyy")
        strFichier = "u:\ged\documentged" & "_" & mystr & "_" & Time & ".csv"
    A voir.

  9. #9
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    j'ai dejà essayé
    tampis çà fera partit comme le triangle des bermudes des choses inexpliqués et inexplicables

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    avec un bon débogage pas à pas on devrait pouvoir trouver la cause.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/01/2010, 17h59
  2. [PHP 5.0] deux formulaires dans un meme fichier php, en envoyer un seul
    Par agnaou dans le forum Langage
    Réponses: 7
    Dernier message: 26/03/2009, 17h38
  3. Réponses: 4
    Dernier message: 30/11/2007, 10h23
  4. Ouverture dans le meme classeur avec plusieurs feuilles
    Par Marie69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/10/2007, 18h27
  5. recuperer une donnée dans le meme fichier
    Par phpaide dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 11h03

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