Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Vincular tabla con VBA

2,670 views
Skip to first unread message

Milton Zafra Lizcano

unread,
Jan 6, 2008, 10:46:28 AM1/6/08
to
Buenos Días,

Cual es el comando que debo utilizar para vincular una tabla a una base de
datos con VBA.

La idea es ubicar un MDB, vincular la tabla en el MDB que estoy corriendo,
accesarla con un formulario y luego borrarla. Por esta razón no utilizo la
opción de ARCHIVO / OBTENER DATOS EXTERNOS / VINCULAR TABLA.


Gracias,

Milton Zafra L


Patxi Sanz

unread,
Jan 6, 2008, 11:07:25 AM1/6/08
to
Hola Milton:

Puedes colocar una instrucción SELECT en el origen del formulario para
acceder a la base de datos externa. Por ejemplo:

SELECT * FROM Clientes IN 'C:\Mis documentos\Neptuno.mdb'

Tienes más info sobre estas sentencias en el manual de SQL del maestro
Softjaén:

- http://www.mvp-access.com/softjaen/manuales/sql/index.htm

--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
Tudela (NA)

Ju@nk

unread,
Jan 6, 2008, 2:36:24 PM1/6/08
to
Tambien puedes hacerlo con el metodo TransferDataBase (de la ayuda)

Método TransferDatabase
Vea también Corresponde a EjemploDetalles
El método TransferDatabase lleva a cabo la acción TransferDatabase
(TransferirBaseDatos) en Visual Basic.

expresión.TransferDatabase(TransferType, DatabaseType, DatabaseName,
ObjectType, Source, Destination, StructureOnly, StoreLogin)

expresión Requerida. Expresión que devuelve uno de los objetos de la
lista Aplicar a.

TransferType AcDataTransferType opcional.

AcDataTransferType puede ser una de estas constantes
AcDataTransferType.
acExport
acImport valor predeterminado
acLink
Si deja en blanco este argumento, se asume la constante predeterminada
(acImport).

Nota Los proyectos de Microsoft Access (.ADP) no admiten el tipo de
transferencia acLink.


DatabaseType Variant opcional. Una expresión de cadena que representa el
nombre de uno de los tipos de bases de datos que puede utilizar para
importar, exportar o vincular datos.

Tipos de bases de datos:
Microsoft Access (predeterminada)
Jet 2.x
Jet 3.x
dBase III
dBbase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
Bases de datos ODBC
WSS
En la ventana Macro, puede ver los tipos de bases de datos en la lista
del argumento de la acción Tipo de base de datos de la acción
TransferirBasedatos.

DatabaseName Variant opcional. Una expresión de cadena que es el nombre
completo, incluyendo la ruta de acceso, de la base de datos que desea usar
para importar, exportar o vincular datos.

ObjectType AcObjectType opcional.

AcObjectType puede ser una de estas constantes AcObjectType.
acDataAccessPage
acDefault
acDiagram
acForm
acFunction
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcedure
acTable valor predeterminado
Este es el tipo de objetos cuyos datos desea importar, exportar, o
vincular. Sólo puede especificar un objeto que no sea acTable si está
importando o exportando datos entre dos bases de datos de Microsoft Access.
Si está exportando los resultados de una consulta de selección de Microsoft
Access a otro tipo de base de datos, especifique acTable para este
argumento.

Si deja en blanco este argumento, se asume la constante predeterminada
(acTable).

Nota La constante acDefault, que aparece en la lista de Miembros de
lista automáticos para este argumento, no es válida para este argumento.
Debe elegir una de las constantes enumeradas anteriormente.


Source Variant opcional. Una expresión de cadena que es el nombre del
objeto cuyos datos desea importar, exportar, o vincular.

Destination Variant opcional. Una expresión de cadena que es el nombre
del objeto importado, exportado o vinculado en la base de datos de destino.

StructureOnly Variant opcional. Utilice True (-1) para importar o
exportar sólo la estructura de una tabla de base de datos. Use False (0)
para importar o exportar la estructura de la tabla junto con sus datos. Si
deja en blanco este argumento, se asume el valor predeterminado (Falso).

StoreLogin Variant opcional. Use Verdadero para almacenar la
identificación de inicio de sesión (ID) y la contraseña de una base de datos
ODBC en la cadena de conexión para una tabla vinculada desde la base de
datos. Si hace esto, no tiene que iniciar sesión cada vez que abra la tabla.
Use Falso si no desea almacenar la Id de inicio de sesión y la contraseña.
Si deja en blanco este argumento, se asume el valor predeterminado (Falso).
Este argumento sólo está disponible en Visual Basic.

Comentarios
Para obtener más información sobre cómo funcionan la acción y sus
argumentos, consulte el tema de la acción.

Puede dejar en blanco un argumento opcional en mitad de la sintaxis, pero
debe incluir la coma del argumento. Si deja en blanco un argumento de la
cola, no use una coma a continuación del último argumento que especifique.

El administrador de una base de datos ODBC puede desactivar la
característica proporcionada por el argumento guardariddeinicio, que
requiere que todos los usuarios introduzcan la Id de inicio de sesión y la
contraseña cada vez que se conectan a la base de datos ODBC.


Nota También puede usar objetos de datos ActiveX (ADO) para crear un
vínculo mediante la propiedad ActiveConnection del objeto Recordset.


Para vincular a una lista de Windows SharePoint Services, primero debe
especificar la siguiente sintaxis para el argumento DatabaseName:

WSS;HDR=NO;IMEX=2;DATABASE=<HTTP Server path>;LIST=<List
GUID>;VIEW=;RetrieveIds=Yes;TABLE=<List name>donde <HTTP Server path> es la
ruta al sitio Windows SharePoint Services, <List GUID> es el identificador
exclusivo global de la lista y <List name> es el nombre descriptivo de la
lista.

La forma más fácil de obtener esta información es realizar los siguientes
procedimientos:

1.. En la ventana de base de datos, cree una tabla nueva que se vincule a
la lista de Windows SharePoint Services.
2.. Abra la tabla vinculada en la vista Diseño.
3.. Haga clic en Propiedades en el menú Ver.
La cadena requerida se enumera en la propiedad Description.

Ejemplo
El siguiente ejemplo importa el informe Ventas NO de abril desde la base de
datos de Microsoft Access NOVENTAS.MDB al informe Ventas corporativas de
abril en la base de datos activa:

DoCmd.TransferDatabase acImport, "Microsoft Access", _
"C:\My Documents\NWSales.mdb", acReport, "NW Sales for April", _
"Corporate Sales for April"
El siguiente ejemplo vincula la tabla de la base de datos ODBC Autores a
la base de datos activa:

DoCmd.TransferDatabase acLink, "ODBC Database", _
"ODBC;DSN=DataSource1;UID=User2;PWD=www;LANGUAGE=us_english;" _
& "DATABASE=pubs", acTable, "Authors", "dboAuthors"
En el siguiente ejemplo se exporta el contenido de la tabla Clientes a una
lista nueva denominada Lista de clientes en el sitio Windows SharePoint
Services "http://example/WSSSite".

DoCmd.TransferDatabase transfertype:=acExport, databasetype:="WSS", _
databasename:="http://example/WSSSite", _
objecttype:=acTable, Source:="Customers", _
Destination:="Customer List", structureonly:=False
--
--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
Ju@nK [MVP Access]
http://juank.mvps.org
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
http://juankc.spaces.live.com/
http://juank.mvps.org/
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir 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 la sugerencia del presente mensaje.
**
"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribió en el mensaje
news:%23HHw$4HUIH...@TK2MSFTNGP02.phx.gbl...

Milton Zafra Lizcano

unread,
Jan 20, 2008, 7:22:30 PM1/20/08
to
Hola Patxi:

Pido disculpas por no haber dado respuesta antes pero la verdad no habia
podido trabajar sobre este punto.

Gracias por la idea, fue la solución que necesitaba.

Hice una modificación para que el origen del formulario fuera variable. Para
esto use el evento al abrir del formulario y utilizando una variable
(INVOCA) que contiene la ruta del MDB logre hacer lo que necesitaba.

Este es el código que utilice por si le interesa a alguien.

Private Sub Form_Open(Cancel As Integer)
Dim Origen
Origen = "SELECT * FROM Propietario IN '" & Invoca & "'"
Me.RecordSource = Origen
End Sub

Muchas Gracias,

Milton Zafra L - Bogotá, Colombia.

"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribió en el mensaje
news:%23HHw$4HUIH...@TK2MSFTNGP02.phx.gbl...

Patxi Sanz

unread,
Jan 21, 2008, 11:36:17 AM1/21/08
to
De nada :-)
0 new messages