Cómo usar SQLConfigDataSource para crear un DSN del sistema de Access

Avanzado: requiere conocimientos expertos de codificación, interoperabilidad y multiusuario.

Este artículo se aplica a una base de datos de Microsoft Access (.mdb o accdb) y a un proyecto de Microsoft Access (.adp).

Resumen

No se puede crear un DSN del sistema mediante el método RegisterDatabase. Para crear un DSN del sistema, use la llamada a la API ODBC para SQLConfigDataSource.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

Más información

En el ejemplo siguiente se usa la llamada API de SQLConfigDataSource para crear un DSN del sistema. En el ejemplo se crea un origen de datos para la base de datos de ejemplo Northwind.mdb cuando la base de datos se encuentra en C:\Northwind.mdb.

  1. Copie el Northwind.mdb de base de datos de ejemplo en el directorio raíz de la unidad C.
  2. Cree una base de datos de Access.
  3. Cree un módulo y escriba las líneas siguientes en la sección Declaraciones:
Option Explicit
Const ODBC_ADD_SYS_DSN = 4       'Add data source
Const ODBC_CONFIG_SYS_DSN = 5    'Configure (edit) data source
Const ODBC_REMOVE_SYS_DSN = 6    'Remove data source

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

  1. Escriba el procedimiento siguiente:
Function Build_SystemDSN(DSN_NAME As String, Db_Path As String)

Dim ret%, Driver$, Attributes$

Driver = "Microsoft Access Driver (*.MDB)" & Chr(0)
   Attributes = "DSN=" & DSN_NAME & Chr(0)
   Attributes = Attributes & "Uid=Admin" & Chr(0) & "pwd=" & Chr(0)
   Attributes = Attributes & "DBQ=" & Db_Path & Chr(0)

ret = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, Driver, Attributes)

'ret is equal to 1 on success and 0 if there is an error
   If ret <> 1 Then
       MsgBox "DSN Creation Failed"
   End If

End Function

  1. En la ventana Inmediato, escriba la línea siguiente y presione ENTRAR:

    ? Build_SystemDSN("My SampleDSN","c:\Northwind.mdb")

  2. Haga clic enInicio, seleccione Configuración y, a continuación, haga clic en Panel de control.

  3. En Panel de control, haga clic en Orígenes de datos ODBC, Orígenes de datos ODBC (32 bits) o ODBC de 32 bits.

  4. Haga clic en la ficha DSN del sistema. Tenga en cuenta que Mi sampleDSN se ha agregado a la lista Orígenes de datos del sistema.