Compartir a través de


Método Workspace.OpenConnection (DAO)

Se aplica a: Access 2013, Office 2013

Sintaxis

expresión . OpenConnection(Name, Options, ReadOnly, Connect)

expression Variable que representa un objeto Workspace.

Parameters

Nombre

Obligatorio/opcional

Tipo de datos

Descripción

Name

Obligatorio

String

Expresión de cadena. Vea la descripción en Comentarios.

Opciones

Opcional

Variant

Establece varias opciones para la conexión, tal como se especifica en Comentarios. Basándose en este valor, el administrador de controladores ODBC solicita al usuario información de la conexión como el nombre de origen de datos (DSN), el nombre de usuario y la contraseña.

ReadOnly

Opcional

Variant

True si la conexión se va a abrir para un acceso de sólo lectura y False, si se va a abrir para un acceso de lectura/escritura (opción predeterminada).

Connect

Opcional

Variant

Un cadena de conexión ODBC. Consulte la propiedad Connect para ver los elementos específicos y la sintaxis de esta cadena. Se requiere un antepuesto "ODBC;".

Valor devuelto

Connection

Comentarios

Utilice el método OpenConnection para establecer una conexión con un origen de datos ODBC desde un área de trabajo de ODBCDirect. El método OpenConnection es similar pero no equivalente a OpenDatabase. La diferencia principal es que OpenConnection sólo está disponible en un área de trabajo de ODBCDirect.

Si especifica un nombre de origen de datos ODBC (DSN) registrado en el argumento connect, el argumento name puede ser cualquier cadena válida y también proporcionará la propiedad Name para el objeto Connection . Si no se incluye un DSN válido en el argumento connect, el nombre debe hacer referencia a un DSN ODBC válido, que también será la propiedad Name . Si ni el nombre ni la conexión contienen un DSN válido, se puede establecer el administrador de controladores ODBC (a través del argumento options) para solicitar al usuario la información de conexión necesaria. El DSN suministrado a través de la pregunta proporciona luego la propiedad Name.

El argumento options determina si y cuándo se debe pedir al usuario que establezca la conexión y si desea abrir la conexión de forma asincrónica. Puede utilizar una de las constantes siguientes.

Constante

Descripción

dbDriverNoPrompt

El administrador de controladores ODBC utiliza la cadena de conexión proporcionada en dbname y connect. Si no proporciona suficiente información, se produce un error en tiempo de ejecución.

dbDriverPrompt

El administrador de controladores ODBC muestra el cuadro de diálogo Orígenes de datos ODBC, que indica cualquier información pertinente proporcionada en dbname o connect. La cadena de conexión está constituida por el DSN que el usuario selecciona en los cuadros de diálogo, o, si el usuario no especifica un DSN, se utiliza el DSN predeterminado.

dbDriverComplete

Valor predeterminado. Si el argumento connect incluye toda la información necesaria para completar una conexión, el administrador de controladores ODBC utiliza la cadena de connect. Si no, se comporta como suele hacerlo cuando especifica dbDriverPrompt.

dbDriverCompleteRequired

Esta opción se comporta igual que dbDriverComplete excepto que el controlador ODBC deshabilita las preguntas sobre cualquier información que no sea necesaria para completar la conexión.

dbRunAsync

Ejecuta el método de forma asincrónica. Esta constante se puede utilizar con cualquiera de las demás constantes options.

OpenConnection devuelve un objeto Connection que contiene información acerca de la conexión. El objeto Connection es similar al objeto Database. La principal diferencia es que el objeto Database suele representar una base de datos, aunque también se puede utilizar para representar una conexión con un origen de datos ODBC desde un área de trabajo de Microsoft Access.

Ejemplo

En este ejemplo se utiliza el método OpenConnection con distintos parámetros para abrir tres objetos Connection diferentes.

Sub OpenConnectionX() 
 
 Dim wrkODBC As Workspace 
 Dim conPubs As Connection 
 Dim conPubs2 As Connection 
 Dim conPubs3 As Connection 
 Dim conLoop As Connection 
 
 ' Create ODBCDirect Workspace object. 
 Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ 
 "admin", "", dbUseODBC) 
 
 ' Open Connection object using supplied information in 
 ' the connect string. If this information were 
 ' insufficient, you could trap for an error rather than 
 ' go to an ODBC Driver Manager dialog box. 
 MsgBox "Opening Connection1..." 
 
 ' Note: The DSN referenced below must be set to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 Set conPubs = wrkODBC.OpenConnection("Connection1", _ 
 dbDriverNoPrompt, , _ 
 "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 ' Open read-only Connection object based on information 
 ' you enter in the ODBC Driver Manager dialog box. 
 MsgBox "Opening Connection2..." 
 Set conPubs2 = wrkODBC.OpenConnection("Connection2", _ 
 dbDriverPrompt, True, "ODBC;DSN=Publishers;") 
 
 ' Open read-only Connection object by entering only the 
 ' missing information in the ODBC Driver Manager dialog 
 ' box. 
 MsgBox "Opening Connection3..." 
 Set conPubs3 = wrkODBC.OpenConnection("Connection3", _ 
 dbDriverCompleteRequired, True, _ 
 "ODBC;DATABASE=pubs;DSN=Publishers;") 
 
 ' Enumerate the Connections collection. 
 For Each conLoop In wrkODBC.Connections 
 Debug.Print "Connection properties for " & _ 
 conLoop.Name & ":" 
 
 With conLoop 
 ' Print property values by explicitly calling each 
 ' Property object; the Connection object does not 
 ' support a Properties collection. 
 Debug.Print " Connect = " & .Connect 
 ' Property actually returns a Database object. 
 Debug.Print " Database[.Name] = " & _ 
 .Database.Name 
 Debug.Print " Name = " & .Name 
 Debug.Print " QueryTimeout = " & .QueryTimeout 
 Debug.Print " RecordsAffected = " & _ 
 .RecordsAffected 
 Debug.Print " StillExecuting = " & _ 
 .StillExecuting 
 Debug.Print " Transactions = " & .Transactions 
 Debug.Print " Updatable = " & .Updatable 
 End With 
 
 Next conLoop 
 
 conPubs.Close 
 conPubs2.Close 
 conPubs3.Close 
 wrkODBC.Close 
 
End Sub 
 

En este ejemplo se demuestra el objeto Connection y la colección Connections abriendo un objeto Database de Microsoft Access y dos objetos Connection ODBCDirect y listando las propiedades disponibles para cada objeto.

Sub ConnectionObjectX() 
 
 Dim wrkAcc as Workspace 
 Dim dbsNorthwind As Database 
 Dim wrkODBC As Workspace 
 Dim conPubs As Connection 
 Dim conPubs2 As Connection 
 Dim conLoop As Connection 
 Dim prpLoop As Property 
 
 ' Open Microsoft Access Database object. 
 Set wrkAcc = CreateWorkspace("NewWorkspace", _ 
 "admin", "", dbUseJet) 
 Set dbsNorthwind = wrkAcc.OpenDatabase("Northwind.mdb") 
 
 ' Create ODBCDirect Workspace object and open Connection 
 ' objects. 
 Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ 
 "admin", "", dbUseODBC) 
 
 ' Note: The DSNs referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 Set conPubs = wrkODBC.OpenConnection("Connection1", , , _ 
 "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 Set conPubs2 = wrkODBC.OpenConnection("Connection2", , _ 
 True, "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 Debug.Print "Database properties:" 
 
 With dbsNorthwind 
 ' Enumerate Properties collection of Database object. 
 For Each prpLoop In .Properties 
 On Error Resume Next 
 Debug.Print " " & prpLoop.Name & " = " & _ 
 prpLoop.Value 
 On Error GoTo 0 
 Next prpLoop 
 End With 
 
 ' Enumerate the Connections collection. 
 For Each conLoop In wrkODBC.Connections 
 Debug.Print "Connection properties for " & _ 
 conLoop.Name & ":" 
 
 With conLoop 
 ' Print property values by explicitly calling each 
 ' Property object; the Connection object does not 
 ' support a Properties collection. 
 Debug.Print " Connect = " & .Connect 
 ' Property actually returns a Database object. 
 Debug.Print " Database[.Name] = " & _ 
 .Database.Name 
 Debug.Print " Name = " & .Name 
 Debug.Print " QueryTimeout = " & .QueryTimeout 
 Debug.Print " RecordsAffected = " & _ 
 .RecordsAffected 
 Debug.Print " StillExecuting = " & _ 
 .StillExecuting 
 Debug.Print " Transactions = " & .Transactions 
 Debug.Print " Updatable = " & .Updatable 
 End With 
 
 Next conLoop 
 
 dbsNorthwind.Close 
 conPubs.Close 
 conPubs2.Close 
 wrkAcc.Close 
 wrkODBC.Close 
 
End Sub