VINCULAR TABLA ACCESS - PARA EL QUE LO NECESITE
Publicado por antperlop (4 intervenciones) el 03/06/2008 14:17:27
Se trata de lo siguiente:
Aplicación que se compone de dos BD, una de objetos (formularios, informes etc...) y otra con la tablas. La aplicación crea la tabla correspondiente a un mes, en esta última
y luego tenemos que vincularla a la primera, para poder trabajar con ella.
---------------------------------------------------------------------------------------------------------------------------
Option Compare Database
Option Explicit
Public NombreTablaVinculada As String
Function VincularTBL(MESANNO)
‘
‘ Vincular una tabla access de una base mde a otra mde por código
‘ La tabla existe en GespensBD.mde (N012008) y se quiere vincular a Gespens.mde
‘
Dim dbsTemp As Database
Dim strEntrada As String
Dim strTabla As String
Dim NombreTabla_a_Vincular As String
NombreTablaVinculada = "N" & MESANNO
NombreTabla_a_Vincular = "N" & MESANNO
'Abre una base de datos Microsoft Jet a la que se le vinculará una tabla.
‘ Esto se lo podriamos dar también mediante una variable
Set dbsTemp = OpenDatabase("C:NOMV4GESPENS.MDB")
strEntrada = ";DATABASE=" & "C:NOMV4GESPENSBD.MDE"
SalidaConexión dbsTemp, (NombreTablaVinculada), strEntrada, _ (NombreTabla_a_Vincular)
dbsTemp.Close
End Function
Sub SalidaConexión(dbsTemp As Database, _
strTabla As String, strConectar As String, strTablaOrigen As String)
On Error GoTo SIGUE
Dim tdfVinculado As TableDef
Dim rstVinculado As Recordset
Dim intTemp As Integer
Dim Tabla As Object
' Crea un nuevo TableDef, establece las propiedades Connect
' y SourceTableName basadas en los argumentos transferidos
' y lo anexa a la colección TableDefs.
Set tdfVinculado = dbsTemp.CreateTableDef(strTabla)
tdfVinculado.Connect = strConectar
tdfVinculado.SourceTableName = strTablaOrigen
' Antes de vincular la tabla eliminamos la anterior, si no daria error.
For Each Tabla In CurrentDb.TableDefs
If Tabla.Name = strTabla Then
dbsTemp.TableDefs.Delete strTabla
Exit For
End If
Next
SIGUE:
dbsTemp.TableDefs.Append tdfVinculado
Set rstVinculado = dbsTemp.OpenRecordset(strTabla)
End Sub
Aplicación que se compone de dos BD, una de objetos (formularios, informes etc...) y otra con la tablas. La aplicación crea la tabla correspondiente a un mes, en esta última
y luego tenemos que vincularla a la primera, para poder trabajar con ella.
---------------------------------------------------------------------------------------------------------------------------
Option Compare Database
Option Explicit
Public NombreTablaVinculada As String
Function VincularTBL(MESANNO)
‘
‘ Vincular una tabla access de una base mde a otra mde por código
‘ La tabla existe en GespensBD.mde (N012008) y se quiere vincular a Gespens.mde
‘
Dim dbsTemp As Database
Dim strEntrada As String
Dim strTabla As String
Dim NombreTabla_a_Vincular As String
NombreTablaVinculada = "N" & MESANNO
NombreTabla_a_Vincular = "N" & MESANNO
'Abre una base de datos Microsoft Jet a la que se le vinculará una tabla.
‘ Esto se lo podriamos dar también mediante una variable
Set dbsTemp = OpenDatabase("C:NOMV4GESPENS.MDB")
strEntrada = ";DATABASE=" & "C:NOMV4GESPENSBD.MDE"
SalidaConexión dbsTemp, (NombreTablaVinculada), strEntrada, _ (NombreTabla_a_Vincular)
dbsTemp.Close
End Function
Sub SalidaConexión(dbsTemp As Database, _
strTabla As String, strConectar As String, strTablaOrigen As String)
On Error GoTo SIGUE
Dim tdfVinculado As TableDef
Dim rstVinculado As Recordset
Dim intTemp As Integer
Dim Tabla As Object
' Crea un nuevo TableDef, establece las propiedades Connect
' y SourceTableName basadas en los argumentos transferidos
' y lo anexa a la colección TableDefs.
Set tdfVinculado = dbsTemp.CreateTableDef(strTabla)
tdfVinculado.Connect = strConectar
tdfVinculado.SourceTableName = strTablaOrigen
' Antes de vincular la tabla eliminamos la anterior, si no daria error.
For Each Tabla In CurrentDb.TableDefs
If Tabla.Name = strTabla Then
dbsTemp.TableDefs.Delete strTabla
Exit For
End If
Next
SIGUE:
dbsTemp.TableDefs.Append tdfVinculado
Set rstVinculado = dbsTemp.OpenRecordset(strTabla)
End Sub
Valora esta pregunta
0