Bases de Datos - Access-Vinculacion tablas MYSQL cada vez que abres

 
Vista:

Access-Vinculacion tablas MYSQL cada vez que abres

Publicado por carlos (1 intervención) el 28/02/2009 18:26:46
Buenas:

Tengo una BD en mysql y realice la vinculacion de las tablas en access mediante el driver ODBC y salio todo OK, lo que pasa es que si hago una modificacion en la estructura de la BD, no se actualizan las vinculaciones en access y tengo que volver a vincular las tablas...hay alguna manera de que cada vez que se abra el access se vinculen automaticamente las tablas??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Access-Vinculacion tablas MYSQL cada vez que abres

Publicado por JCP (1 intervención) el 11/03/2011 20:29:29
Utiliza este codigo en el formulario de inicio:

Private Sub Form_Open(Cancel As Integer)

Dim rs
Dim cfg, nomb_tb As String
Dim p As Long
Dim tabla As Variant

On Error GoTo vincular
Set rs = CurrentDb.OpenRecordset("configuracion")
Exit Sub

vincular:
Mensaje.Value = "Vinculando tablas..."

' Primero abrimos fichero de configuracion
Open "fichero.cfg" For Input As #1
Line Input #1, cfg
Close #1

'Reviculamos tablas.
For Each tabla In CurrentDb.TableDefs
nomb_tb = tabla.Connect
If nomb_tb <> "" Then 'Las tablas no vinculadas no se revinculan
p = InStrRev(nomb_tb, "\", , vbTextCompare) 'Buscamos la ultima ocurrencia de \
nomb_tb = Mid(nomb_tb, p + 1) 'Recortamos el nombre de la tabla
tabla.Connect = ";DATABASE=" & cfg & nomb_tb
tabla.RefreshLink
Mensaje.Value = tabla.Name
End If
Next
Mensaje.Value = "Revinculacion correcta"

End Sub

-----------------------------
Funcionamiento:
- Con un autoengaño, verifico que no puedo acceder a la tabla "configuracion". Si puedo simplemente salgo del proceso
- Abro el fichero de configuracion. Solo contiene la ruta donde se ubica el programa y todas las tablas. Por ejemplo: C:\carpeta\base\
- Revinculo las tablas a la ubicacion que indica la configuracion. Si te fijas no me importa como se llaman las tablas, solo el lugar donde se ubican. Esta suposicion es importante, sin embargo es muy util para incluir en cualquier programa, pues tampoco se preocupa por el nombre de la base principal (la current).

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar