Bonjour,

J'ai tenté de créer un DSN système d'une base de données Access 2007 .ACCDB via l'API SQLConfigDataSource() sans succès. Le code voici:

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
Private Const ODBC_ADD_DSN = 1   ' Add data source
Private Const ODBC_CONFIG_DSN = 2   ' Configure (edit) data source
Private Const ODBC_REMOVE_DSN = 3   ' Remove data source
Private Const ODBC_ADD_SYS_DSN = 4   ' Add System DSN
'
Private Declare Function apiSQLConfigDataSource Lib "ODBCCP32.DLL" _
  Alias "SQLConfigDataSource" (ByVal hwndParent As Long, _
  ByVal fRequest As Long, _
  ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long


Function dllCreateDSNAccdbSystem() As Long
'
  Dim lStat As Long
  Dim strConn As String
'
  strConn = "DSN=MonDsnAccdb" & Chr(0) _
    & "Description=MonDsnAccdb SYSTEME" & Chr(0) _
    & "DBQ=" & Application.CurrentProject.FullName & Chr(0)
'
' Erreur: ceci ne marche pas: tentant de créer DSN système:
'
  lStat = apiSQLConfigDataSource(0&, ODBC_ADD_SYS_DSN, _
    "Microsoft Access Driver (*.mdb, *.accdb)", strConn)
'
' BON: cela marche bien, mais creant DSN utilisateur:
'
' lStat = apiSQLConfigDataSource(0&, ODBC_ADD_DSN, _
'   "Microsoft Access Driver (*.mdb, *.accdb)", strConn)
'
  If (lStat = 1) Then
    MsgBox "CREATION DSN REUSSIE AVEC " & strConn
  Else
    MsgBox "CREATION DSN ECHOUEE AVEC " & strConn
  End If
'
  dllCreateDSNAccdbSystem = lStat
'
End Function
En sachant que je peux créer DSN utilisateur avec option ODBC_ADD_DSN.
Et je peux également configurer manuellement une Source de Données système en Shell Windows Vista via Panneau de Configuration .

Pourriez-vous m'éclairer SVP ?