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 :

MAJ projet adp en vba [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Points : 105
    Points
    105
    Par défaut MAJ projet adp en vba
    Bonjour,

    J'ai plusieurs projets .adp qui sont utilisés par une centaine de users. Je créé de temps en temps des nouvelles versions que je zip et convertis en .exe, le tout stocké sur un disque réseau.
    J'aimerais éxécuter une mise à jour de la version de manière automatique avec une commande shell.
    Mon problème c'est que je dois fermer mon projet pour qu'il soit mis à jour et j'aurais aimé éxécuter le code justement à partir de ce fichier .adp. Donc je suis coincé et je cherche une solution.

    Une idée?

    Merci par avance

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Points : 105
    Points
    105
    Par défaut
    Alors je pensais avoir trouvé une solution mais je n'en suis plus très sur...

    Ce que je fais à l'ouverture du projet adp est de vérifier sa version et de la comparer à la dernière existante. Si la version n'est pas la dernière alors j'ouvre un fichier excel qui contient le code vba de mise à jour.
    Le problème est quel la MAJ ne peut se faire que si le projet à mettre à jour est fermé et qu'avec le code suivant access reste ouvert dans les processus du gestionnaire des tâches...

    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
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    Dim fichier As String
     
    Access.Quit
     
    fichier = Feuil1.Cells(1, 1).Value
    Nom = Application.ActiveWorkbook.Name
     
    Application.Wait (Now + TimeValue("00:00:01")) 'attente de 1 seconde
     
    reval = Shell("\\tlstore01\hybrides\Methodes\Bases\Install\" & fichier, 1)
     
    appui_touche (13) 'touche Entrée
    Application.Wait (Now + TimeValue("00:00:01")) 'attente de 1 seconde
    appui_touche (13) 'touche Entrée
    Application.Wait (Now + TimeValue("00:00:01")) 'attente de 1 seconde
    appui_touche (13) 'touche Entrée
     
    Application.Windows(Nom).Activate
    MsgBox ("Installation terminée!")
     
    ActiveWorkbook.Close False
     
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Points : 105
    Points
    105
    Par défaut
    Bon j'ai trouvé la solution, tuer le processus access, c'est pas très propre mais bon en attendant de trouver mieux, ça fonctionne. Du coup le code si dessous fonctionne.
    C'est un besoin très spécifique mais j'espère que ça pourra aider quelqu'un un jour...

    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
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Private Declare Sub keybd Lib "user32" Alias "keybd_event" _
    (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim fichier As String
     
    ' Fermeture d'access puis suppression du processus dans le gestionnaire des tâches
    Access.Quit
    VBA.Interaction.Shell ("TASKKILL /F /IM msaccess.exe")
     
    ' Initialisation des variables 'fichier' et 'Nom'
    fichier = Feuil1.Cells(1, 1).Value
    Nom = Application.ActiveWorkbook.Name
     
    ' Commande Shell permettant d'ouvrir le fichier .exe
    reval = Shell("\\tlstore01\hybrides\Methodes\Bases\Install\" & fichier, 1)
     
    ' Simulation des touches clavier et attente d'1 seconde entre chaque frappe
    appui_touche (13) 'touche Entrée
    Sleep 1000 'tempo d'1s
    appui_touche (13) 'touche Entrée
    Sleep 1000 'tempo d'1s
    appui_touche (13) 'touche Entrée
    Sleep 1000 'tempo d'1s
     
    ' Activation du fichier excel et affichage du message indiquant la fin de la MAJ
    Application.Windows(Nom).Activate
    reponse = MsgBox("Installation terminée!" & Chr(10) & "Vous pouvez redémarrer l'applicatif", vbOKOnly)
     
        If reponse = vbOK Then
     
            If Application.Workbooks.Count > 1 Then
                ActiveWorkbook.Close False
            Else
                Application.Quit
            End If
     
        End If
     
    End Sub
     
    Sub appui_touche(t As Long)
    'appuie sur la touche
    keybd t, 0, 0, 0
    'relache la touche
    keybd t, 0, 2, 0
    End Sub

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Bonjour,

    Pour ma culture, changer un adp en exe se fait comment et change quoi concrètement ?

    Merci d'avance !
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Ce n'est pas le fichier adp que je change en .exe mais le dossier .zip dans lequel il se trouve. Le fichier adp et d'autres fichiers (text, bat, ini...) sont installés automatiquement sur un disque local préalablement choisi lors de la création du .exe. C'est donc à partir de winzip que je créé le .exe

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

Discussions similaires

  1. [AC07] fermer un projet adp en vba
    Par tiferg dans le forum Access
    Réponses: 3
    Dernier message: 01/01/2009, 10h18
  2. Migrer une application Access vers un projet adp
    Par lazizou dans le forum Projets ADP
    Réponses: 3
    Dernier message: 29/05/2006, 16h50
  3. Faire une MAJ de recordsetclone par VBA.
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 03/02/2006, 17h42
  4. Utiliser les forms Access dans un projet ADP -> SQL SERVE
    Par _developpeur_ dans le forum Projets ADP
    Réponses: 12
    Dernier message: 09/12/2005, 12h37
  5. transformation d'un projet ADP en ADE
    Par mibo94 dans le forum Projets ADP
    Réponses: 1
    Dernier message: 28/10/2005, 14h01

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