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 :

Un AutoExec mais de loin


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Un AutoExec mais de loin
    Bonjour à tous

    J'ai un souci de conception (plus que de programmation).
    Je vais vous presenter mon architecture (même si ça a déjà été fait dans un autre topic) et ça va rejoinder un autre de mes topics encore pendant.
    J'ai un fichier Data.accdb qui contient des tables uniquement.
    J'ai un fichier Moteur.accdb qui contient des modules qui exposent des fonctions.
    J'ai plusieurs fichier .accdb qui font le travail en utilsant (par Link) les table de data.accdb et les fonctions de Moteur.accdb.

    Maintenant mon problème est de mettre à jour les données dans data.accdb sans l'ouvrir, sans schedule, sans batch et si possible sans mettre une commande systématique dans chaque fichier .accdb.

    Bref, je sèche un peu. Je voudrais que ce soit les utilisateurs qui déclenchent la mise à jour des données sans s'en rendre compte ni même en avoir simplement conscience et surtout sans être obligé d'avoir un Link de chaque table dans tous les fichiers .accdb.

    Je crois que mon premier point est de faire pointer un objet Database sur mon fichier Data.accdb, mais j'ai pas trouvé comment faire. Et ensuite de pouvoir déclencher une bout de code à distance.

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    sans batch ni scheduler, il te reste des vbscripts ?

    Plus serieusement, ce que tu cherches a faire est possible, mais ca reste via deux moyens :
    - de maniere active, en ce sens ou c'est la base A qui lance sur la base B un script
    - de maniere passive, en ce sens ou c'est la base A qui met a jour une information (fichier texte, valeur de parametre, etc.) et la base B qui le decte a distance...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.
    Je crois que je m'en suis sorti.

    Malgré mes contraintes un peu dures....
    J'ai tout de même la chance d'avoir une procedure qui est appellée par tous les fichiers :
    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
     
    Sub EnregistrerUtilisateur(NomFormulaire As String)
     
    'Procédure permettant de loguer l'utilisation des boutons
    If Environ("USERNAME") <> "USERNAME" Then
        CurrentDb.Execute "INSERT INTO Utilisation_Bouton (Operateur, Nom_Formulaire, DateClick) VALUES ('" & Environ("USERNAME") & "','" & NomFormulaire & "','" & Now() & "')"
    End If
    'procédure de mise à jour des données
    Dim DataDb As Database
    Set DataDb = OpenDatabase("\\.....\groupshares\.....\Data.accdb")
    Set oDBMoteur = CurrentDb
    Dim oFSO As New Scripting.FileSystemObject
    Dim oFl As Scripting.File
    Set oFl = oFSO.GetFile("\\......\groupshares\.......\un fichier de data.csv")
    If oFl.DateLastModified > DLookup("DateMajData", "Maintenance", "ID = 1") Then
        DataDb.Execute ("DELETE FROM laTable")
        DoCmd.TransferText acImportDelim, , "laTable", "\\.....\groupshares\......\un fichier de data.csv", True
     
    'Répétition pour chaque table de deux lignes au dessus.
     
        oDBMoteur.Execute ("UPDATE Maintenance SET DateMajData = '" & Now() & "' WHERE ID = 1")
    End If
    Set oDBMoteur = Nothing
    Set DataDb = Nothing
    End Sub
    Cette procédure me permet de tracer tous les utilisateurs qui utilisent les applications, donc chaque application .accdb va lancer ça en premier.

    J'espère juste que j'ai bien fait avec les déclarations de DB pour faire en sorte que si une application n'a pas le mapping d'une table je ne génère pas un message d'erreur.

    Je te souhaite une très bonne journée.

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  2. [Choix SGBD] Application mono-poste mais beaucoup de données
    Par Wavyx dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 16/03/2003, 18h24
  3. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36

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