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 :

Ouvrir une table Access par une requête en passant par un batch


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut Ouvrir une table Access par une requête en passant par un batch
    Bonjour,

    Mon problème fait suite aux pistes de réflexions qui m'ont été données dans la discussion précédente intitulé "Automatisation-Pistes de réflexions" .

    Je suis sur Access et j'ai crée une requête nommé "reqnew" à l'aide d'une table liée à Accces (table qui en réalité appartient à SQL server) et cette table nommons la "reqold" reqnew est donc connecté au Server puisqu'elle dépend de reqold.

    Je souhaite crée si c'est possible à partir d'un fichier Batch une table ou une requête qui sera une copie conforme de reqnew mais qui ne doit pas être connecté au server; mon but étant de travail sur les données d'une période fixe (journée, semaine, mois) il me faut donc recueillir les infos sur le server sur la periode voulu et ensuite me déconnecté de ce server.


    Merci par avance pour votre aide m'est très précieuse.


    Kedmard.

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Si tu transformes ta requête en requête "action", création de table, tu devrais pouvoir l'exécuter sans problème en lisant ce tuto : Access et Fichiers Batch : Passage de Paramètres.

    Domi2

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    voici le code que j'ai saisi dans mon batch:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Cls
     
     
    start /WAIT msaccess.exe "C:\Users\Moimeme\Desktop\Enilo\Mabase.accdb" ; "SELECT sessionID, customVariable5, startDateTime, endDateTime, Jour INTO reqnew FROM Reqold;"
     
    Pause

    Après exécution j'arrive à ouvrir la base access , mais il n'y a aucune table ou requête reqnew de créer.


    ai-je omis un détail?

    Merci

  4. #4
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 349
    Points
    34 349
    Par défaut
    Hello,

    il serait judicieux ici de nous fournir le code VBA qui est exécuté dans la macro d'autoexecution

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Le voici:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function StartUp()
    Dim monparam As Variant  ' déclare une variable
    monparam = Command()      ' affecte la valeur transmise à la variable
     
        If Not IsNull(monparam) Then    'si la variable est nulle
            If Len(monparam) > 0 Then   'on s'assure qu'un paramètre a été passé, sinon pas de comportement particulier
                RecuperationSplit = Split(monparam, "|")
                DoCmd.RunMacro RecuperationSplit(0) 
       End If
        End If
    End Function

  6. #6
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 349
    Points
    34 349
    Par défaut
    Ici, tu essaies de faire tourner une macro (RunMacro), il faut donc passer en paramètr ele nom de ta macro

    Si tu souhaites créer une requete dans la base en lui passant le code SQL, il faut le faire en conséquence (regarde la sur le code VBA de création de QueryDef), de plus, une requete porte un nom sous Access, souhaiterais-tu un nom par défaut ou passer celui-ci par batch aussi ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    J'ai exécuter celui suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function StartUp()
    Dim monparam As Variant  ' déclare une variable
    monparam = Command()      ' affecte la valeur transmise à la variable
     
        If Not IsNull(monparam) Then    
            If Len(monparam) > 0 Then   
             CurrentDB.Execute monparam
                  End If
        End If
    End Function

    et ça marche sur une base access "ordinaire" mais lorsrque j'ai affaire à une base de données contenant des tables (liées) et dont l'accès nécessite un mot de pass là ça ne marche. J'ai même déjà ouvert une discussion concernant cette question qui n'est pas encore résolu. Je continue donc à chercher.

    Merci pour tout Jpcheck

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

Discussions similaires

  1. requete liant une table access et une Table Oracle
    Par simbonikala dans le forum Oracle
    Réponses: 2
    Dernier message: 05/07/2007, 18h25
  2. Copier une table Access d'une base de données à une autre
    Par Marie S. dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/05/2007, 12h09
  3. Réponses: 6
    Dernier message: 16/06/2006, 13h22
  4. Réponses: 3
    Dernier message: 05/05/2006, 14h57
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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