DSN System ODBC [Résolu]

Signaler
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Bonjour,

Comment via vb, peut on configurer un DSN system sans avoir à écrire l'ODBC.ini + le registre ?

y a-t-il des API ?

-- Pourquoi faire simple quand on peut faire compliquer --

2 réponses

Messages postés
8
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
24 janvier 2007

Bonjour,
Voilà le code :

 'Création du DSN Access :
AddDSNA pathFile, "nom_de_ton_dsn"
'Suppression du DSN Access :
'DeleteDSNA "nom_de_ton_dsn"

===> Et tu met tout ce qui suit dans un module à part :

'Module contenant les fonctions d'ajout et de suppression des dsn vers Access
 
'Constant Declaration
Private Const ODBC_ADD_DSN = 1 ' Ajoute un dsn
Private Const ODBC_CONFIG_DSN = 2 ' Configure le dsn
Private Const ODBC_REMOVE_DSN = 3 ' Supprime le dsn
 
Private Const ODBC_ADD_SYS_DSN = 4 ' Ajout d'une source système
Private Const ODBC_CONFIG_SYS_DSN = 5 ' Configure la source système
Private Const ODBC_REMOVE_SYS_DSN = 6 ' Supprime la source système
Private Const vbAPINull As Long = 0& 'Pointeur NULL
 
'Déclaration des API's
 
    Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, ByVal fRequest As Long, _
    ByVal lpszDriver As String, ByVal lpszAttributes As String) _
    As Long
 
 
Public Function AddDSNA(FileName As String, Nom_du_DSN As String) As Boolean
 
    Dim intRet As Long
 
    Dim strDriver As String
    Dim strAttributes As String
 
    'Indique le driver Access
    strDriver = "Microsoft Access Driver (*.mdb)"
 
    'Indique les attributs delimités par le caractère null.
    'Indique le nom du DSN ainsi que son chemin d'accès
    strAttributes = strAttributes & "DSN=" & Nom_du_DSN & Chr$(0)
    strAttributes = strAttributes & "DBQ=" & FileName & Chr$(0)
 
    intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, _
    strDriver, strAttributes)
 
    AddDSNA = CBool(intRet)
 
   If AddDSNA = True Then
    ' MsgBox "ok pour dsn access"
    Else
        MsgBox "Une erreur s'est produite lors de la connexion à la base de données Access. Veuillez vérifier si le chemin est correct et retenter une connexion. Si le problème persiste, veuillez contacter votre administrateur"
        cheminaccess.Show
    End If
End Function
 
Public Function DeleteDSNA(Nom_du_DSN As String) As Boolean
 
    Dim intRet As Long
 
    Dim strDriver As String
    Dim strAttributes As String
 
    'Indique le driver Access.
    strDriver = "Microsoft Access Driver (*.mdb)"
 
    'Indique les attributs délimités par le caractère null.
    'Indique le nom du DSN à supprimer
 
    strAttributes = "DSN=" & Nom_du_DSN & Chr$(0)
    intRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, _
    strDriver, strAttributes)
 
     DeleteDSNA = intRet
   ' If DeleteDSNA = True Then
   ' MsgBox "DSN access détruit"
   ' Else
   ' MsgBox "DSN access non-détruit"
   ' End If
End Function
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
Merci
en modifiant ton code proprement on peut s'en servir pour tout

impec

-- Pourquoi faire simple quand on peut faire compliquer --