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 :

source de données utilisateur ODBC [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut source de données utilisateur ODBC
    bonjour,

    est-il possible de récupérer par vba pour alimenter une liste déroulante le contenu des "Sources de données utilisateur:" de l' "Administrateur de sources de données ODBC" ?

    information que l'on a en exécutant "odbccp32.cpl" dans menu demarrer > executer; onglet "Source de données utilisateur"

    il y a comme infos dans ce module de windows le Nom et le Pilote


    merci
    bonne journée

  2. #2
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    salut,

    en cherchant dans la on trouve ceci :
    http://access.developpez.com/sources...s#ConfigDsnVBA

    cela te convient-il ?

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut
    merci pour le lien

    je regarderais demain si avec ces informations j'arrive à alimenter une table comportant 2 champset bonne soirée

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Option Explicit
     
    Private Const SQL_SUCCESS = 0
     
    ' ---------------------------------------------------------
    ' Création/libération Handles
    ' ---------------------------------------------------------
    Private Const SQL_NULL_HANDLE As Long = 0&
    Private Const SQL_HANDLE_ENV As Byte = 1       ' Environment
     
    Private Declare Function SQLAllocHandle Lib "odbc32.dll" ( _
         ByVal HandleType As Integer, _
         ByVal InputHandle As Long, _
         ByRef OutputHandle As Long) As Integer
     
    Private Declare Function SQLFreeHandle Lib "odbc32.dll" ( _
         ByVal HandleType As Integer, _
         ByVal Handle As Long) As Integer
     
    ' ---------------------------------------------------------
    ' Attribut d'environnement version ODBC
    ' agit sur le comportement de certaines fonctions de l'api ODBC
    ' ---------------------------------------------------------
    Private Const SQL_ATTR_ODBC_VERSION As Long = 200
    Private Const SQL_OV_ODBC3 As Long = 3
    Private Declare Function SQLSetEnvAttr Lib "odbc32.dll" ( _
         ByVal EnvironmentHandle As Long, _
         ByVal lAttribute As Long, _
         ByVal Value As Long, _
         ByVal StringLength As Long) As Integer
     
    ' ---------------------------------------------------------
    ' Enumérations sources de données
    ' ---------------------------------------------------------
    Private Const SQL_FETCH_FIRST As Long = 2
    Private Const SQL_FETCH_FIRST_USER = 31
    Private Const SQL_FETCH_FIRST_SYSTEM = 32
    Private Const SQL_FETCH_NEXT As Long = 1
     
    Private Declare Function SQLDataSources Lib "odbc32.dll" ( _
         ByVal hEnv As Long, _
         ByVal fDirection As Integer, _
         ByVal szDSN As String, _
         ByVal cbDSNMax As Integer, _
         ByRef pcbDSN As Integer, _
         ByVal szDescription As String, _
         ByVal cbDescriptionMax As Integer, _
         ByRef pcbDescription As Integer) As Integer
     
     
    Sub ListDataSces()
    Dim hEnv As Long, sqlretVal As Integer, intDir As Integer
    Dim strDsn As String, intDsnSize As Integer, strDesc As String, intDescSize As Integer
    Dim strList As String
     
    ' Environment Handle
    sqlretVal = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, hEnv)
    ' Version ODBC : 3
    sqlretVal = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 4)
     
    ' SQL_FETCH_FIRST ou SQL_FETCH_FIRST_USER ou SQL_FETCH_FIRST_SYSTEM
    intDir = SQL_FETCH_FIRST_USER
    Do While sqlretVal = SQL_SUCCESS
       strDsn = String(257, vbNullChar): intDsnSize = 256
       strDesc = String(257, vbNullChar): intDescSize = 256
       sqlretVal = SQLDataSources(hEnv, intDir, _
                   strDsn, 256, intDsnSize, _
                   strDesc, 256, intDescSize)
       If sqlretVal = SQL_SUCCESS Then
          strList = strList & Left(strDsn, intDsnSize) & vbCrLf
       End If
       intDir = SQL_FETCH_NEXT
    Loop
    sqlretVal = SQLFreeHandle(SQL_HANDLE_ENV, hEnv)
     
    MsgBox strList
    End Sub
    Le type d'énumération dépend de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' SQL_FETCH_FIRST ou SQL_FETCH_FIRST_USER ou SQL_FETCH_FIRST_SYSTEM
    intDir = SQL_FETCH_FIRST_USER
    SQL_FETCH_FIRST_USER Sources de données Utilisateur seulement
    SQL_FETCH_FIRST_SYSTEM Sources de données Système seulement
    SQL_FETCH_FIRST les deux

    A+

  5. #5
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 188
    Points : 89
    Points
    89
    Par défaut
    merci beaucoup je vais pouvoir adapter le code à mes besoins

    bonne journée

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

Discussions similaires

  1. Créer une source de données utilisateur ODBC par un programme delphi
    Par newflash dans le forum Bases de données
    Réponses: 5
    Dernier message: 02/12/2010, 08h18
  2. Problème Ajout source de données Utilisateurs
    Par tchass dans le forum Windows
    Réponses: 0
    Dernier message: 14/07/2010, 16h29
  3. comment lister les sources de données utilisateur
    Par lassad dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/10/2005, 13h56
  4. Liste des sources de données système (ODBC)
    Par Le_tzao dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2005, 08h58

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