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 et VBA Excel Discussion :

[VBA-E] Requetes depuis Excel sur une Base Access sécurisée


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA-E] Requetes depuis Excel sur une Base Access sécurisée
    Bonjour,

    J'ai développé une base Access sur laquelle s'effectue des requetes "Select" depuis Excel.
    Une fois le fonctionnement OK, j'ai ajouté un niveau de sécurité dans Access en créeant des groupes et utilisateur, dont un en lecture seule (c'est ce dernier, "User", que je veux utiliser depuis Excel).
    La configuration de la sécurité à créé un fichier .mdw dans lequel sont contenu les infos de groupe et sécurité.
    J'ai créer des raccourcis utilisant des commutateurs pour ouvrir la base Access en utilisant ce fichier de sécurité et le bon utilisateur.

    J'utilise deux méthode différentes pour mes requetes select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim rsData As ADODB.Recordset
    Dim szConnect As String
     
    PathMyApplication = ActiveWorkbook.Path & "\"
     
    'Connection String
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & PathMyApplication & "ProductEvaluation.mdb;"
     
    'Object Recordset and execute query
    Set rsData = New ADODB.Recordset
    sqlString = "select Name from Products Group By Name"
    rsData.Open sqlString, szConnect
    Et la seconde :
    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
     
    'Declaration of elements for the query
    Dim wrk As DAO.Workspace
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim qdf As QueryDef
    Dim strQuery As String
     
    PathMyApplication = ActiveWorkbook.Path & "\"
     
    'Create database connection and query
    Set wrk = CreateWorkspace("", "Admin", "", dbUseJet)
    Set db = wrk.OpenDatabase(PathMyApplication & "ProductEvaluation.mdb")
     
    'Create the SQL query
    strQuery = "SELECT Name FROM Products WHERE Name <> null "
     
    Set qdf = db.CreateQueryDef(SelectProductsByFeatures, strQuery)
     
    'Execute the query
    Set rst = qdf.OpenRecordset()
    Pourriez-vous m'orienter sur la façon d'ajouter à ces requetes le fichier de sécurité à utilisé (le .mdw) et le "User" ?

    D'avance merci pour vos réponse.

    Dhi'San

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai réglé le problème pour les requêtes utilisant ADO :
    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
     
    Dim rsData As ADODB.Recordset
    Dim MyConnStr As String
    Dim sqlString As String
     
    PathMyApplication = ActiveWorkbook.Path & "\"
     
    'Set Connection string
    Set Cnn = New ADODB.Connection
     
    Cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
    Cnn.Properties("Jet OLEDB:System database") = PathMyApplication & "ProductEvaluationSecurity.mdw"
    Cnn.Properties("Password") = ""
    Cnn.Properties("User Id") = "User"
     
    Cnn.Open "Data Source=" & PathMyApplication & "ProductEvaluation.mdb;"
    MyConnStr = Cnn.ConnectionString
     
    'Object Recordset and execute query
    Set rsData = New ADODB.Recordset
    sqlString = "select Name from Products Group By Name"
    rsData.Open sqlString, MyConnStr
    Le lien où j'ai trouvé la solution :
    http://msdn.microsoft.com/library/de...etprovspec.asp

    Dhi'San

Discussions similaires

  1. Comment effectuer une requette SQL depuis Excel vers une base MySQL ?
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/01/2008, 01h08
  2. Requête sur une base access dans excel
    Par adrien.gendre dans le forum Excel
    Réponses: 3
    Dernier message: 23/07/2007, 12h06
  3. [BO INFOS] Requeter sur une base access
    Par tetsuoo dans le forum Débuter
    Réponses: 2
    Dernier message: 27/03/2007, 11h13
  4. [VBA Excel]Interroger une base access depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/02/2007, 10h43
  5. requetes BUSINESS OBJECT sur une base ACCESS
    Par greatmaster1971 dans le forum Deski
    Réponses: 1
    Dernier message: 06/10/2004, 14h10

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