vincular un archivo excel y una tabla de un proyecto de access...todo bajo SQL Server

10/05/2006 - 12:06 por xabi | Informe spam
Buenas:
Como mi duda tiene que ver con muchos campos de la ofimatica y
programacion escribo este mensaje en varios foros.Mi duda es la siguiente:
-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?

muchisimas gracias.

Preguntas similare

Leer las respuestas

#1 Eva
10/05/2006 - 12:28 | Informe spam
Hola Xabi

Desde ADP no puedes vincular, lo siento :( Quizá puedas utilizar un objeto
OLE, un hipervínculo... en un formulario para que el usuario tenga acceso
cómodo a todo.

Un saludo

Eva

"xabi" escribió en el mensaje
news:
Buenas:
Como mi duda tiene que ver con muchos campos de la ofimatica y
programacion escribo este mensaje en varios foros.Mi duda es la siguiente:
-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?

muchisimas gracias.


Respuesta Responder a este mensaje
#2 Eva
10/05/2006 - 12:28 | Informe spam
Hola Xabi

Desde ADP no puedes vincular, lo siento :( Quizá puedas utilizar un objeto
OLE, un hipervínculo... en un formulario para que el usuario tenga acceso
cómodo a todo.

Un saludo

Eva

"xabi" escribió en el mensaje
news:
Buenas:
Como mi duda tiene que ver con muchos campos de la ofimatica y
programacion escribo este mensaje en varios foros.Mi duda es la siguiente:
-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?

muchisimas gracias.


Respuesta Responder a este mensaje
#3 SoftJaén
10/05/2006 - 16:14 | Informe spam
"xabi" escribió:

-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?



Hola, Xabi:

Creo recordar que ya te indiqué por correo personal, lo que tenías que hacer
para "vincular" un archivo de Excel a la base de datos de SQL Server.

Ya te dije que en SQL Server, lo más parecido a vincular un archivo de
Excel, es crear un objeto «vista» en la propia base de SQL Server, que
apunte hacia un origen remoto Ole Db, en tu caso, el archivo de Excel. Pero
vuelvo a insintirte, que en un proyecto *.adp, no se pueden vincular otros
orígenes de datos, tal y como se hace con una base normal Microsoft Access.

Si deseas crear la vista mediante programación, tendrás que utilizar la
biblioteca de ADO para ejecutar algo parecido al ejemplo que te muestro a
continuación, el cual te crearás una vista llamada «vewExcel», en una
hipotética base de datos SQL Server llamada «Prueba», residente en la
instancia local de Microsoft SQL Server, con los datos contenidos en una
hoja de cálculo de Excel llamada «Hoja1»:

Dim cnn As ADODB.Connection
Dim SQL As String

' Configuramos y abrimos la conexión con la
' base de SQL Server, utilizando la Seguridad
' Integrada de Windows NT
'
Set cnn = New ADODB.Connection
With cnn
.Provider = "SQLOLEDB.1"
.ConnectionString = _
"Persist Security Info=False" & _
";Data Source=(local)" & _
";Initial Catalog=Prueba" & _
";Integrated Security=SSPI;"
.Open
End With

SQL = "CREATE VIEW [vewExcel] AS " & _
"SELECT * FROM OPENDATASOURCE(" & _
"'Microsoft.Jet.OLEDB.4.0'," & _
"'Excel 8.0;Database=C:\Carpeta\Libro1.xls;')...[Hoja1$]"


On Error Resume Next

' Creamos la vista
cnn.Execute SQL, , adCmdText + adExecuteNoRecords

' Cerramos y liberamos el objeto Connection
cnn.Close
Set cnn = Nothing

' Consultamos el resultado de la ejecución
If Err.Number = 0 Then
MsgBox "Se ha creado correctamente la vista."
Else
' Se ha producido un error
MsgBox Err.Description
End If

Sólo tienes que sustituir los nombres de la base de datos, de la instancia
de SQL Server, de la ruta del archivo de Excel, y del nombre de la hoja de
cálculo, para que el ejemplo se adapte a tus necesidades. Si en lugar de
seleccionar la hoja de cálculo completa, deseas seleccionar un rango de
celdas con nombre, en vez de especificar el nombre de la hoja de cálculo
con el símbolo $, deberás de especificar sólo el nombre del rango de celdas,
sin el signo $.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, 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 recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 SoftJaén
10/05/2006 - 16:14 | Informe spam
"xabi" escribió:

-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?



Hola, Xabi:

Creo recordar que ya te indiqué por correo personal, lo que tenías que hacer
para "vincular" un archivo de Excel a la base de datos de SQL Server.

Ya te dije que en SQL Server, lo más parecido a vincular un archivo de
Excel, es crear un objeto «vista» en la propia base de SQL Server, que
apunte hacia un origen remoto Ole Db, en tu caso, el archivo de Excel. Pero
vuelvo a insintirte, que en un proyecto *.adp, no se pueden vincular otros
orígenes de datos, tal y como se hace con una base normal Microsoft Access.

Si deseas crear la vista mediante programación, tendrás que utilizar la
biblioteca de ADO para ejecutar algo parecido al ejemplo que te muestro a
continuación, el cual te crearás una vista llamada «vewExcel», en una
hipotética base de datos SQL Server llamada «Prueba», residente en la
instancia local de Microsoft SQL Server, con los datos contenidos en una
hoja de cálculo de Excel llamada «Hoja1»:

Dim cnn As ADODB.Connection
Dim SQL As String

' Configuramos y abrimos la conexión con la
' base de SQL Server, utilizando la Seguridad
' Integrada de Windows NT
'
Set cnn = New ADODB.Connection
With cnn
.Provider = "SQLOLEDB.1"
.ConnectionString = _
"Persist Security Info=False" & _
";Data Source=(local)" & _
";Initial Catalog=Prueba" & _
";Integrated Security=SSPI;"
.Open
End With

SQL = "CREATE VIEW [vewExcel] AS " & _
"SELECT * FROM OPENDATASOURCE(" & _
"'Microsoft.Jet.OLEDB.4.0'," & _
"'Excel 8.0;Database=C:\Carpeta\Libro1.xls;')...[Hoja1$]"


On Error Resume Next

' Creamos la vista
cnn.Execute SQL, , adCmdText + adExecuteNoRecords

' Cerramos y liberamos el objeto Connection
cnn.Close
Set cnn = Nothing

' Consultamos el resultado de la ejecución
If Err.Number = 0 Then
MsgBox "Se ha creado correctamente la vista."
Else
' Se ha producido un error
MsgBox Err.Description
End If

Sólo tienes que sustituir los nombres de la base de datos, de la instancia
de SQL Server, de la ruta del archivo de Excel, y del nombre de la hoja de
cálculo, para que el ejemplo se adapte a tus necesidades. Si en lugar de
seleccionar la hoja de cálculo completa, deseas seleccionar un rango de
celdas con nombre, en vez de especificar el nombre de la hoja de cálculo
con el símbolo $, deberás de especificar sólo el nombre del rango de celdas,
sin el signo $.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, 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 recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#5 xabi
10/05/2006 - 18:30 | Informe spam
y con este codigo cualkier cambio en el excel se verá reflejado en el
access??
muchisimas gracias y perdonar por lo pesado...conceptos como vista y objetos
OLE me son totalmente desconocidos.
"xabi" escribió en el mensaje
news:
Buenas:
Como mi duda tiene que ver con muchos campos de la ofimatica y
programacion escribo este mensaje en varios foros.Mi duda es la siguiente:
-Tengo un proyecto de access(.adp) trabajando sobre SQL Server,desde
este proyecto creo un archivo de excel y me gustaria que estos dos (el
archivo de excel y una tabla de mi proyecto) estuvieran automaticamente
vinculados desde su creacion,como puedo hacer esto?

muchisimas gracias.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida