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 :

Numéro d'ordre dans table triée, par SQL ou VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Numéro d'ordre dans table triée, par SQL ou VBA
    Bonjour,

    Je suis nouveau sur ce forum. Je maitrise les bases d'Access, y compris VBA. Essentiellement en me basant sur des exemples trouvés dans différentes aides.

    J'essaye de piloter depuis Access la création dans Word de documents correspondant à un formulaire. J'utilise le principe du publipostage, mais document par document. Tout est en place. Mais je dois relancer Word par une procédure événementielle pour chaque création.

    Je souhaite garder Word chargé et demander la création d'un nouveau document depuis Access.

    Une solution possible serait de créer à chaque création de document une table triée alphabétiquement par un champs principal NOM et comportant un champ Numéro_d_ordre correspondant à l'ordre de tri. Cette nouvelle serait basée sur une table existante qui est non triée sur ce même champ, les enregistrements étant créés au fur et à mesure de la saisie. Cela me permettrait de récupérer ce champ Numéro_d_ordre pour demander l'affichage dans Word.

    Je n'ai pas trouvé le moyen de créer ce champ Numéro_d_ordre par une requête SQL ou par VBA.

    Merci de votre bout de requête SQL ou code VBA.

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Ci joint un lien vers une discussion qui traite d'un sujet similaire : "Numéroter les lignes d'une requête"

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Et si ton numéro n'a pas vraiment d'importance, tu pourrais peut-être utiliser un champ Numéro Auto de Access qui te garanti un numéro séquentiel croissant unique.
    Note qu'il peut y avoir des "trous" dans cette numérotation car elle n'est pas conçue pour compter les enregistrements mais pour les identifier de manière unique.
    Ce numéro est attribué à la création de l'enregistrement dans la table.

    A+

  4. #4
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci de vos réponse.

    Le NumAuto ne me convient pas, car ne correspondant pas à l'ordre alphabétique.

    La requête avec NumOrdre, correspondant à l'ordre alphabétique, fonctionne. Je suis en train de finir la fonction Création dans Word depuis Access. Dès que c'est OK, je vous fais un retour ici.

    Q : Est-il possible d'en faire un tuto, un exemple de réalisation ? Est-ce réservé aux gestionnaires de ce site ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bonsoir,

    Je patauge !

    Je voudrais faire depuis Access ce qu'il est possible de faire facilement avec Word :
    - ouvrir un modèle de publipostage
    - choisir autant de fois que je veux un document pour l'enregistrer.

    J'ai enregistré une Macro dans Word. Mais je n'arrive pas à la faire fonctionner depuis Access.
    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
    ' << faire une fois pour ouvrir le modèle
        Documents.Add Template:= _
            "C:\Users\aphil\Documents\Modèles Office personnalisés\Modèle Recette impression Multi.dotm" _
            , NewTemplate:=False, DocumentType:=0
    ' << faire autant de fois que besoin
        ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord ' ou tout autre action, dans Access avec liste déroulante
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
                .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            End With
            .Execute Pause:=False
        End With
        ChangeFileOpenDirectory "D:\Cuisine\Papinette_Recettes\"
        ActiveDocument.SaveAs2 FileName:="Bouchées à la reine.docx", FileFormat:= _
            wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
            :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
            :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False, CompatibilityMode:=15
        ActiveWindow.Close
    '  << fin de faire
    Il n'y a que cette partie qui me pose problème, n'ayant jamais traité ce genre de fonction. Tout l'environnement est prêt.

    Je n'arrive pas à mettre les "With" et les "."là où il faut !

    Merci de vos suggestions.

    Bonne soirée

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 391
    Points : 19 816
    Points
    19 816
    Billets dans le blog
    66
    Par défaut
    Bonsoir,

    Il faudrait déjà piloter Word depuis Access en utilisant des variables objets pour l'application Word et pour le document :

    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
    Dim wApp As Word.Application
    Dim wDoc as Word.Document
     
    Set wApp = New Word.Application
    wApp.Visible = True 'permet d'afficher à l'écran l'application 
     
    'ouverture du document Word
    'Set wDoc = wApp.Documents.Open(cheminDocument) ' en commentaire
     
    Set wDoc = wApp.Documents.Add Template:= _
            "C:\Users\aphil\Documents\Modèles Office personnalisés\Modèle Recette impression Multi.dotm" _
            , NewTemplate:=False, DocumentType:=0
    ' << faire autant de fois que besoin
        wDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord ' ou tout autre action, dans Access avec liste déroulante
    ...
    ...
    'Libération de variables à la fin :
    set wDoc=Nothing
    set wApp=Nothing
    Cdlt,

Discussions similaires

  1. BIRT numéro de pages dans table des matières
    Par martinfa dans le forum BIRT
    Réponses: 1
    Dernier message: 29/06/2012, 11h25
  2. [AC-2003] créer numéro d'ordre dans une requête (en mode graphique)
    Par willytito dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 22/02/2012, 14h30
  3. Inclure des numéros d'ordre dans BIRT
    Par arestos dans le forum BIRT
    Réponses: 1
    Dernier message: 01/12/2011, 18h24
  4. Chargement table Oracle par SQL Loader
    Par Mike-lb dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 28/08/2006, 12h30
  5. [SQL] Pb d'insertion donnée dans table, pb requête SQL
    Par PuppeT mAsTer dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/07/2006, 11h26

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