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

Macros Access Discussion :

Comment s'affranchir de la saisie des identifiants de sources de données dans une macro?


Sujet :

Macros Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 12
    Points
    12
    Par défaut Comment s'affranchir de la saisie des identifiants de sources de données dans une macro?
    Bonjour à tous,

    Je recherche désespérément une solution à un problème qui m'agace depuis pas mal de temps. Voici donc:

    Petit tour d'horizon: J'utilise un fichier Access (faute de mieux ) pour lancer des requêtes me servant à comparer la cohérence des enregistrements entre deux bases de données. Mon fichier contient donc uniquement des requêtes et des tables liées.

    Mon objectif: automatiser le lancement de ma macro sous forme de tâche programmée (de ce côté c'est bon je maîtrise à peu près )

    Mon problème: Mes tables liées sont sur des bases ORACLES, et je souhaiterai m'affranchir d'avoir à taper les identifiants des sources de données à chaque fois que mon fichier et la macro sont éxécuté.

    Par le dessin: Je ne veux plus de ça!

    Nom : dialogueLoginODBC.jpg
Affichages : 114
Taille : 21,0 Ko

    Et j'ai testé le code ci-dessous ( j'ai remplacé la macro par un rapport en fin de code), mais l'état redemande les identifiants des Sources de données.

    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
    Sub Cocoche()
    Dim strConnBASE1 As String
    Dim strConnBASE2 As String
     
    strConnBASE1 = "ODBC;" & _
                     "DSN=DSN_BASE1;" & _
                     "UID=ID_USER_BASE1;" & _
                     "PWD=MDP_USER_BASE1"
     
    strConnBASE2 = "ODBC;" & _
                     "DSN=DSN_BASE2;" & _
                     "UID=ID_USER_BASE2;" & _
                     "PWD=MDP_USER_BASE2"
     
    Set connBASE1 = OpenDatabase("DSN_BASE1", dbDriverComplete, read - only, strConnBASE1)
    Set connBASE2 = OpenDatabase("DSN_BASE2", dbDriverComplete, read - only, strConnBASE2)
    DoCmd.OpenReport "ErreursDeCoherence"
     
    End Sub
    Please, HELP!

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    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 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    2 solutions :

    1) Les tables Oracle sont liées au logiciel access : il faut bien penser à cocher "mémoriser le mot de passe" quand on crée le lien et alors access ne le demande plus

    2) Les requetes sont exécutées en ADO avec une connexion créée à chaque requete : le mot de passe doit être écrit "en dur" dans la connexion. Il est alors préférable d'utiliser un user Oracle en lecture seule. Exemple d'une lecture type "Dlookup" :
    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
    Public Function Get_cycle_complet(ByVal cd_article As Long) As Integer
    Dim connect As adodb.Connection, Cmd As adodb.Command, rso As adodb.Recordset 'recordset pour base Oracle
      Get_cycle_complet = 0
      Set connect = New adodb.Connection ' créer connection sur oracle
      connect.Open "mabaseOracle", "monlogin", "monpassword"
      connect.CursorLocation = adUseClient
      Set Cmd = New adodb.Command
      Cmd.CommandType = adCmdText
      Set Cmd.ActiveConnection = connect
     
      Cmd.CommandText = "SELECT cycle_complet FROM article_champ WHERE cd_article=" & cd_article
      Set rso = Cmd.Execute
      If Not rso.EOF Then If rso!cycle_complet > 0 Then Get_cycle_complet = rso!cycle_complet
      rso.Close: Set rso = Nothing
      Set connect = Nothing
    End Function
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

Discussions similaires

  1. comment importer des données dans une table paradox
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/08/2007, 18h32
  2. Comment faire apparaitre des données dans une listbox
    Par nuans dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 14/05/2007, 15h04
  3. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 12h53
  4. Réponses: 4
    Dernier message: 17/11/2006, 19h35
  5. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24

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