Access - conexiòn

   
Vista:

conexiòn

Publicado por javier p (4 intervenciones) el 03/08/2008 21:24:35
Buentas tardes... tengo un archivo (frm1)en access en el cual se encuentran VINCULADAS varias tablas de otro archivo(tbl1). Cuando cambio la base(tbl1) a otra carpeta, la vinculaciòn se pierde. Como hago para que independientemente a la carpeta donde deje mi segunda base no pieda la conexiòn con la primera. hay alguna forma de seleccionar el origen de los datos sin depende de su ubicaciòn y no encuentre problemas con la vinculaciòn de estas tablas?
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

RE:conexiòn

Publicado por Victoria (1530 intervenciones) el 03/08/2008 22:02:31
Hola:
Tendrías que, al abrir la base de datos que cotiene las tablas vinculadas, comprobar la vinculación, y si ha cambiado, cambiarla.
Se hace por código, pero, no veo la necesidad de que tengas que estar haciéndolo constantemente, salvo, concreta necesidad (Histórico de la base de datos, por ejemplo)
Si quieres, aún as´hacerlo, pregunta otra vez y te digo como, o alguién más lo hará

Un saludo
Victoria
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

RE:conexiòn

Publicado por javier (4 intervenciones) el 04/08/2008 04:15:37
si lo necesito pues se va a instalar en pc a los cuales no tengo acceso ni monitoreo: gracias por tu ayuda
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

RE:conexiòn

Publicado por kaditano (2 intervenciones) el 04/08/2008 08:35:30
Algo largo pero es la forma que utilizo... Si cambias la aplicación de ubicación, te saldrá un dialogo para que busques la BD de tablas.

Al abrir el formulario principal pongo lo siguiente:
Private Sub Form_Open(Cancel As Integer)
Dim CAMPO As String
On Error GoTo ErrorOpen
Me.RecordSource = "UNA DE LAS TABLAS"

ErrorOpen:
If Err = 3024 Or Err = 3043 Or Err = 3044 Then
CAMPO = VTACCESS()
End If
Resume Next
End Sub
-------------------------------------------------------------------------------------------------------
En un módulo creo estas funciones:
Function VTACCESS() As Boolean

Dim ActualDB As Database
Dim ETabla As TableDef
Dim ModuloServidorFile As String
Dim Contador As Integer

ModuloServidorFile = OpenFileAccesos()

If ModuloServidorFile <> "" Then
VTACCESS = True
Set ActualDB = CurrentDb()
For Contador = 0 To ActualDB.TableDefs.Count - 1
Set ETabla = ActualDB.TableDefs(Contador)
If ETabla.Connect <> "" And Right(ETabla.Connect, 12) = "GESPERBD.MDE" Then
ETabla.Connect = ";DATABASE=" & ModuloServidorFile
Err = 0
ETabla.RefreshLink
If Err <> 0 Then
MsgBox "La conexión con el Módulo Servidor ha sido insatisfactoria." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "'" & ModuloServidorFile & "' no contiene la tabla '" & ETabla.SourceTableName & "' requerida por la aplicación.", vbCritical + vbOKOnly, "Conexión con el Servidor"
VTACCESS = False
Exit For
End If
End If
Next Contador
Else
MsgBox "La conexión con el Módulo Servidor ha sido cancelada.", vbCritical + vbOKOnly, "Conexión con el Servidor"
VTACCESS = False
End If

End Function

Private Function OpenFileAccesos() As String

Dim of As OPENFILENAME

of.hwndOwner = Application.hWndAccessApp
of.hInstance = 0
of.lpstrCustomFilter = 0
of.nMaxCustrFilter = 0
of.lpfnHook = 0
of.lpTemplateName = 0
of.lCustrData = 0
of.lpstrFilter = "GESPERBD" & vbNullChar & "*.mde" & vbNullChar & vbNullChar
of.nFilterIndex = 1
of.lpstrFile = Left$("GESPERBD.MDE" & String$(512, 0), 512)
of.nMaxFile = 511
of.lpstrFileTitle = String$(512, 0)
of.nMaxFileTitle = 511
of.lpstrTitle = "Vincular B.D."
of.lpstrInitialDir = "C:PROGRAMGESPER"
of.lpstrDefExt = ""
of.flags = OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_NOCHANGEDIR + OFN_PATHMUSTEXIST + OFN_HIDEREADONLY
of.lStructSize = Len(of)

If GetOpenFileName(of) Then
OpenFileAccesos = Trim(Left$(of.lpstrFile, InStr(of.lpstrFile, vbNullChar) - 1))
Else
OpenFileAccesos = ""
End If

End Function

Adapta estas lineas a tus necesidades
of.lpstrFilter = "GESPERBD" & vbNullChar & "*.mde" & vbNullChar & vbNullChar

of.lpstrFile = Left$("GESPERBD.MDE" & String$(512, 0), 512)

of.lpstrInitialDir = "C:PROGRAMGESPER"
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

RE:conexiòn

Publicado por javier (4 intervenciones) el 05/08/2008 05:03:35
gracias.... lo mirare y le cuento
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