Cómo llamar al cuadro de diálogo Propiedades de vínculo de datos
Por Enrique Martínez Montejo
Última revisión: 17/08/2003
 

El cuadro de diálogo Propiedades de vínculo de datos es aquél que aparece cuando utilizamos el control de datos de ADO para configurar en tiempo de diseño una conexión con un origen de datos, especificando el proveedor de datos al que deseamos conectarnos, así como los restantes parámetros necesarios para establecer la conexión. Una vez que pulsemos el botón Aceptar del cuadro de diálogo, la propiedad ConnectionString del control de datos contendrá la información que se utilizará para establecer la conexión con el origen de datos.

Pero no solamente aparece con el control de datos, sino que también lo podemos hacer aparecer cuando hacemos doble clic en el Explorador de Windows sobre un archivo de vínculos de datos (archivo UDL). Y ésto es así porque tenemos instalada en nuestro sistema la biblioteca de tipos Microsoft OLE DB Service Component 1.0 cuyo nombre de archivo es OLEDB32.DLL que generalmente se encuentra en Archivos de programa\Archivos comunes\System\Ole DB.

Al ser una biblioteca de tipos, para poder utilizarla en nuestra aplicación necesitaremos establecer primera una referencia a la biblioteca Microsoft OLE DB Service Component 1.0 Type Library, de ésta forma podremos utilizar todos los objetos incluidos en dicha biblioteca.

El siguiente ejemplo muestra cómo utilizar el componente de servicio OLE DB para mostrar el cuadro de diálogo Propiedades de vínculo de datos, mostrando la cadena de conexión establecida en un control TextBox, por lo que también necesitaremos una referencia a la biblioteca de ADO:

Private Sub Command1_Click()

    On Error GoTo ErrOpenDialog

    ' Declaración de variables
    Dim cnn As ADODB.Connection
    Dim oDataLink As MSDASC.DataLinks

    ' Creación de nuevas instancias
    Set cnn = New ADODB.Connection
    Set oDataLink = New MSDASC.DataLinks

    ' Llamamos al cuadro de diálogo
    cnn = oDataLink.PromptNew

    ' Comprobamos la cadena de conexión
    Text1.Text = cnn.ConnectionString

    Exit Sub

ErrOpenDialog:

    ' Si se cancela el cuadro de diálogo, se producirá
    ' un error interceptable
    '

    If (Err.Number = 91) Then
        MsgBox "Se ha cancelado la operación."
    Else
        MsgBox "Error: " & Err.Description
    End If

End Sub

Si tenemos una cadena de conexión y deseamos modificarla mediante el cuadro de diálogo Propiedades de vínculo de datos, en lugar de utilizar el método PromptNew, tendríamos que llamar al método PromptEdit del objeto DataLinks, indicándole un objeto Connection válido y que previamente haya sido configurado. En éste caso no hace falta activar una rutina de errores porque, aunque se pulse el botón Cancelar, el cuadro de diálogo devolverá la cadena de conexión del objeto Connection:

Private Sub Command1_Click()

    ' Declaración de variables
    Dim cnn As ADODB.Connection
    Dim oDataLink As MSDASC.DataLinks

    ' Creación de nuevas instancias
    Set cnn = New ADODB.Connection
    Set oDataLink = New MSDASC.DataLinks

    ' Configuramos el objeto Connection
    With cnn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=C:\Mis documentos\bd1.mdb;" & _
                            "Persist Security Info=False"
    End With

    ' Llamamos al cuadro de diálogo para editar
    ' la cadena de conexión

    oDataLink.PromptEdit cnn

    ' Comprobamos la cadena de conexión
    Text1.Text = cnn.ConnectionString

End Sub

Por último indicar, si deseamos que el cuadro de diálogo se muestre de una manera modal, necesariamente le tendremos que indicar el formulario que ha realizado la llamada mediante la propiedad hWnd del formulario:

oDataLink.hWnd = Form1.hWnd

Llamar al cuadro de diálogo Seleccionar origen de datos

Si en lugar de configurar una conexión mediante un vínculo de datos OLE DB, deseamos utilizar un origen de datos con nombre (DSN) para establecer una conexión ODBC, podemos abrir el cuadro de diálogo Seleccionar origen de datos, el cuál nos mostrará todos los DSN de usuario, de sistema y de archivo que tengamos instalados en nuestro sistema. Por supuesto que para realizar ésta operación, no necesitamos la referencia a la biblioteca Microsoft OLE DB Service Component 1.0 Type Library, aunque sí seguiremos necesitando la referencia a la biblioteca de ADO:

Private Sub Command1_Click()

    On Error GoTo ErrOpenDialog

    Dim cnn As ADODB.Connection
    Set cnn = New ADODB.Connection

    ' Llamamos al cuadro de diálogo
    cnn.Properties("Prompt") = adPromptAlways
    cnn.Open

    ' Comprobamos la cadena de conexión
    Text1.Text = cnn.ConnectionString

    Exit Sub

ErrOpenDialog:

    ' Si se cancela el cuadro de diálogo, se producirá
    ' un error interceptable
    '

    If (Err.Number = -2147217842) Then
        MsgBox "Se ha cancelado la operación."
    Else
        MsgBox "Error: " & Err.Description
    End If

End Sub

 

Otros enlaces de interés:

Cómo crear mediante programación un archivo de vínculos de datos (UDL)

Indice de Tips de OLE DB


Enrique Martínez Montejo - 2003

NOTA: La información contenida en este artículo, así como el código fuente incluido en el mismo, se proporciona COMO ESTÁ, sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo explicado, recomendado o sugerido en el presente artículo.

NOTE: The information contained in this article and source code included therein, is provided AS IS without warranty of any kind, and confers no rights. You assume any risk to implement, use or run it explained, recommended or suggested in this article.