Bonjour,
Je souhaiterais créer une tâche planifiée me permettant de gagner un temps précieux dans ma matinée. Je dois effectuer des actions sans valeurs ajoutées et cela prend un certain temps. En gros cela donne :
1° Lancement d'access et création d'une table à partir d'une requête
2° Lancement d'excel et mise à jour de données s'appuyant sur cette table
Je voulais donc automatiser un peu tout ça, histoire de gagner quelques heures (la requête est très longue)
Je me suis lancé dans le VBS, c'est la solution qui m'a paru la plus logique pour piloter access et excel en même temps et le lancer à partir des tâches planifiées windows.
Problème rencontré (j'en ai rencontré pas mal avant de me décider à poster) :
- Impossible de lancer une requête access existante dans une base existante (nom de la requête : "Req", se trouvant dans la base "test.accdb"). C'est très facile quand on passe par le code sql mais le mien est trop imbuvable pour être migré dans le script. Voici le code que j'ai commencé à faire :
Si déjà vous pouviez m'aider à régler ça, je commencerais à reprendre espoir ! Les recherches google ne m'ont pas aidées pour ce coup là, a chaque fois, une étape ne marche pas chez moi.
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 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") '-------------------------Modifs access ----------------------------- Dim oAcc, oBdd Dim sPathFileAccess 'chemin jusqu'à la BDD sPathFileAccess = "p:\SCRIPT\test.accdb" Set oAcc = WScript.CreateObject("Access.Application") oAcc.Visible = True 'Set oBdd = oAcc.OpenCurrentDatabase("p:\SCRIPT\test.accdb") 'cette ligne ne marchait pas, impossible de comprendre donc j'ai pris une autre méthode 'Methode 2 'Access est ouvert mais la base de donnée n'est pas visible ... set oBdd=oAcc.DBEngine.Workspaces(0).OpenDatabase(sPathFileAccess) On Error Resume Next oAcc.DoCmd.OpenQuery("Req") 'ne marche pas WScript.Sleep 1000 oAcc.Quit MsgBox Err.Number Set oBdd = Nothing Set oAcc = Nothing Set WshShell = Nothing
Je me demandais aussi si je ne pouvais pas passer par une macro access mais dans ce cas-là, comment la lancer aussi ?
Merci beaucoup pour votre aide ! Toute proposition pour améliorer mon système est la bienvenue...
PS : Windows Xp et Access 2007 !
Partager