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 Word Discussion :

Formattage des données dans database avec publipostage conditionnel


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Formattage des données dans database avec publipostage conditionnel
    Bonjour,

    Merci d’abord pour votre aide !

    Word n'étant pas ma grande spécialité, je galère sur ce soucis depuis un petit moment déjà.

    J'essaie de faire un word avec le récapitulatif des engagements(interventions) de nos employés.

    Pour cela, j'utilise un publipostage et un Quickpart Database.

    Le soucis est lorsque j'essaie de structurer les dates et heures qui apparaissent dans le tableau créé.

    De base, elle est structurée à l'américaine (11/24/2017 et 6:45:00 PM) mais je souhaite la mettre à notre format.

    Pour cela, j'ai utilisé un MERGEFIELD, mais cela me créé l'erreur "Erreur ! Impossible d'ouvrir la source des données."

    Et là, je suis perdu ! je ne sais plus quoi faire!

    Merci d'avance pour votre aide !!!

    PS: Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATABASE  \d "C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx" \c "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx;Mode=Read;Extended Properties=\"HDR=YES;IMEX=1;\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False" \s "SELECT `Quoi`, `Date`, `Heure Début`, `Heure Fin`, `Total` FROM `Main$` WHERE ((`NomPrenom` = 'GermanierDenis') AND (`Catégorie` = 'CSM')) ORDER BY `Date`" \l "24" \b "191" \h
    Et voici ce que j'essaie d'ajouter, qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATABASE  \d "C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx" \c "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx;Mode=Read;Extended Properties=\"HDR=YES;IMEX=1;\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False" \s "SELECT `Quoi`, `{ MERGEFIELD Date\@ "dd.MM.yyyy" }`, `Heure Début`, `Heure Fin`, `Total` FROM `Main$` WHERE ((`NomPrenom` = 'AubortLoïc') AND (`Catégorie` = 'CSM')) ORDER BY `Date`" \l "24" \b "191" \h

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par denisgermanier Voir le message
    Bonjour,

    Je ne suis pas en mesure de vous apporter une aide sur votre requête. En revanche, j'ai essayé de voir ce que donnerait la transformation du format d'une date dans un tableau. Le vidage d'écran montre l'essai que j'ai fait avec la première colonne contenant un format américain et la deuxième colonne la date transformée avec le code ci-dessous :

    Pièce jointe 411158
    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
     
    Sub TestTransformerFormatDate()
     
        With ActiveDocument
     
             TransformerFormatDate .Tables(1), 1, 2
     
        End With
     
    End Sub
     
     
    Sub TransformerFormatDate(ByVal TableEnCours As Table, ByVal MaColonneDate1 As Long, MAColonneDate2 As Long)
     
    Dim I As Integer
    Dim MaDate As Variant
     
        With TableEnCours
     
             For I = 1 To .Columns(MaColonneDate1).Cells.Count
                 If InStr(1, .Columns(MaColonneDate1).Cells(I).Range.Text, "/", vbTextCompare) > 0 Then
                    MaDate = Split(.Columns(MaColonneDate1).Cells(I).Range.Text, "/")
                    If UBound(MaDate) > 0 Then .Columns(MAColonneDate2).Cells(I).Range.Text = MaDate(1) & "/" & MaDate(0) & "/" & MaDate(2)
                 End If
             Next I
     
        End With
     
    End Sub
    En ajoutant vos dates dans la première colonne 1 et en lançant la macro regardez ce que vous obtenez dans la colonne 2. Si le résultat était concluant, il faudrait connaître l'indice de la table et sa forme pour adapter la macro à votre document.

  3. #3
    Membre habitué
    Femme Profil pro
    Bureauticienne
    Inscrit en
    Novembre 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bureauticienne

    Informations forums :
    Inscription : Novembre 2014
    Messages : 72
    Points : 154
    Points
    154
    Par défaut
    Bonjour Denis,

    Dans le champ DATABASE, peux-tu essayer de remplacer ton champ `Date` par FORMAT(`Date`,'dd.MM.yyyy') ?

    Anne

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Anne_HM Voir le message
    Bonjour Denis,

    Dans le champ DATABASE, peux-tu essayer de remplacer ton champ `Date` par FORMAT(`Date`,'dd.MM.yyyy') ?

    Anne
    Bonjour Anne,

    Est-ce cela que vous proposez ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {DATABASE  \d "C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx" \c "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\\Users\\taagede1\\Google Drive\\Drive Général\\DMS\\2018\\Soldes\\Total soldes.xlsx;Mode=Read;Extended Properties=\"HDR=YES;IMEX=1;\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False" \s "SELECT `Quoi`, `{FORMAT(`Date`,'dd.MM.yyyy')}`, `Heure Début`, `Heure Fin`, `Total` FROM `Main$` WHERE ((`NomPrenom` = 'GermanierDenis') AND (`Catégorie` = 'CSM')) ORDER BY `Date`" \l "24" \b "191" \h}
    Malheureusement cela me créé également plusieurs erreurs :
    1- "Une erreur s'est produite : Aucune valeur donnée pour un ou plusieurs des paramètres requis." (Pop-up)
    2- "Word n'a pas pu ouvrir la source de données." (Pop-up)
    3- "Erreur ! Impossible d'ouvrir la source des données."

    Merci déjà pour votre aide et temps!

  5. #5
    Membre habitué
    Femme Profil pro
    Bureauticienne
    Inscrit en
    Novembre 2014
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bureauticienne

    Informations forums :
    Inscription : Novembre 2014
    Messages : 72
    Points : 154
    Points
    154
    Par défaut
    Denis,

    j'ai suggéré de remplacer seulement le champ `Date` par FORMAT(`Date`,'dd.MM.yyyy'). J'aurais dû préciser "dans ta formule initiale".
    Je n'ai pas indiqué les { } qui, à ma connaissance, ne sont pas utilisées dans une instruction SQL.
    Cela donnerait :
    […]"SELECT `Quoi`, FORMAT(`Date`,'dd.MM.yyyy'), `Heure Début`, `Heure Fin`, […]
    C'est mieux ?

    Anne

Discussions similaires

  1. insérer des données dans Excel avec MFC
    Par chriscudy dans le forum MFC
    Réponses: 4
    Dernier message: 28/02/2011, 13h03
  2. mettre fichiers avec déjà des données dans répertoire
    Par petitange_lili dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2007, 08h23
  3. [vb6]:Ajuster des données dans un fichier text avec un timer
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 28/07/2006, 12h13
  4. [C#] problème avec l'insertion des données dans MySQL
    Par madica dans le forum Accès aux données
    Réponses: 7
    Dernier message: 08/11/2005, 13h27
  5. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22

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