|
Recuperar nome e caminho de um banco de dados vinculado |
(P) Preciso recuperar o caminho e nome de arquivo do banco de dados externo com o qual vinculei diversas tabelas, quase que como o CurrentDB.Name em todas as tabelas vinculadas. Como faço isso? |
(R) Diretamente da Ajuda do Access: Propriedade Connect: Marca e devolve um valor que fornece informações sobre a origem de qualquer origem de uma conexão aberta, um banco de dados aberto, um banco de dados usado em uma consulta de passagem ou uma tabela vinculada. Para objetos Banco de Dados, objetos new Connection, tabelas vinculadas e objetos TableDef ainda não adicionados a uma coleção, esta propriedade é leitura/gravação. Para objetos QueryDef e tabelas de base, a propriedade é apenas leitura. Como teste, execute a sub sListPath no seu banco de dados. Note que, para tabelas locais, será apresentada uma linha em branco e, para tabelas vinculadas, o caminho do(s) banco(s) de dados que as contém, na janela de Depuração. Para uso geral, passe nomes individuais de tabelas para a função fGetLinkPath.
'*************** Início do Código **************
' Este código foi escrito originalmente por Dev Ashish.
' Ele não deve ser alterado ou distribuído,
' exceto como parte de um aplicativo.
' Use-o livremente em qualquer aplicativo,
' desde que esta nota de copyright não seja alterada.
'
' Código cortesia de
' Dev Ashish
'
'
Function fGetLinkPath(strTable As String) As String
Dim dbs As Database, stPath As String
Set dbs = CurrentDb()
On Error Resume Next
stPath = dbs.TableDefs(strTable).Connect
If stPath = "" Then
fGetLinkPath = vbNullString
' isto pode ser alterado para CurrentDB.Name
Else
fGetLinkPath = right(stPath, Len(stPath) _
- (InStr(1, stPath, "DATABASE=") + 8))
End If
Set dbs = Nothing
End Function
Sub sListPath()
Dim loTd As TableDef
CurrentDb.TableDefs.Refresh
For Each loTd In CurrentDb.TableDefs
Debug.Print fGetLinkPath(loTd.Name)
Next loTd
Set loTd = Nothing
End Sub
'*************** Final do código **************
|