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
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
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.