MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    [Resolvido]Criar vínculos com a base ao abrir o aplicativo

    avatar
    Convidad
    Convidado


    [Resolvido]Criar vínculos com a base ao abrir o aplicativo Empty Criar vínculos com a base ao abrir o aplicativo

    Mensagem  Convidad 19/10/2011, 23:42

    Olá!
    No evento Open do form inicial do aplicativo quero gerar a vinculação de tabelas com o backend.
    Não desejo REvincular. O objetivo é criar os vínculos toda vez que o programa (front) for aberto. Daí, se houver uma nova tabela na base, ela será incluída na vinculação.
    Obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Criar vínculos com a base ao abrir o aplicativo Empty Re: [Resolvido]Criar vínculos com a base ao abrir o aplicativo

    Mensagem  criquio 20/10/2011, 00:24

    Veja aqui dois exemplos de revincular tabelas:
    http://maximoaccess.forumeiros.com/t11-102-codigos-vba-para-access


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Criar vínculos com a base ao abrir o aplicativo Empty Re: [Resolvido]Criar vínculos com a base ao abrir o aplicativo

    Mensagem  Convidad 20/10/2011, 01:48

    Já tinha feito a pesquisa, e o que encontrei não resolve minha questão.
    Não quero restabelecer vínculos existentes.
    Desejo que cada vez que o front for aberto ele renove a vinculação com todas as tabelas de um backend cujo caminho será passado por uma função ou variável.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3744
    Registrado : 04/04/2010

    [Resolvido]Criar vínculos com a base ao abrir o aplicativo Empty Re: [Resolvido]Criar vínculos com a base ao abrir o aplicativo

    Mensagem  Avelino Sampaio 20/10/2011, 10:14

    Olá

    Veja aqui se resolve:

    Código:
    O método DoCmd.TransferDatabase do Access oferece a maneira mais fácil de importar, exportar ou vincular tabelas de outro banco de dados (arquivo mdb/mde). Neste caso, a ação a ser executada dependerá da constante atribuída ao argumento transfertype: acExport, acImport (padrão), ou acLink.

    Veja a sintaxe completa desse método no Help (F1) do Access.

    1 - Importar tabelas de outro banco de dados
    Para viabilizar o uso do método supracitado, eu criei a rotina Importa, que recebe como argumentos o caminho e a senha (opcional) de um banco de dados. Esta rotina importa todas as tabelas do referido banco de dados, ignorando obviamente as tabelas de sistema e as tabelas ocultas.

    Sub Importa(ByVal strDbPath As String, _
        Optional ByVal varPwd As Variant = "")
        'Desenvolvido por JR
        'http://www.accessjr.cjb.net
        Dim db As DAO.Database, tdf As DAO.TableDef
        Dim strNome As String, I As Integer
       
        On Error GoTo ErrHandler
       
        Screen.MousePointer = 11  ' Muda cursor para ampulheta
       
        Set db = DBEngine(0).OpenDatabase(strDbPath, False, _
            False, ";pwd=" & varPwd)
        I = 0 'Zera contador de tabelas importadas.
        For Each tdf In db.TableDefs
        ' Pula tabelas de sistema ou ocultas.
            If Left(tdf.Name, 4) <> "MSys" Then
                strNome = tdf.Name
                DoCmd.TransferDatabase acImport, "Microsoft Access", _
                    db.Name, acTable, strNome, strNome, False
                I = I + 1  ' Ajusta contador de tabelas.
            End If
        Next tdf
        MsgBox "Foram importadas " & I & " tabelas de" & vbCrLf _
                & Dir(db.Name), vbExclamation, "Status da importação"
       
    Sai:
        Screen.MousePointer = 0
        Set db = Nothing    ' Libera memória
        Set tdf = Nothing
        Exit Sub
       
    ErrHandler:
        MsgBox "Erro nº " & Err.Number & vbCrLf _
            & Err.Description, vbCritical, "Erro"
        Resume Sai
       
    End Sub

    Você pode associar a rotina ao evento Ao Clicar de um botão de comando, como no exemplo abaixo:

    Private Sub Comando0_Click()
        Dim strDb As String
        strDb = "C:\Temp\Estoque.mdb"
        Call Importa(strDb, "Teste")
    End Sub

    Nota: Se o mdb que contém as tabelas não tiver senha, simplesmente não preencha o argumento varPwd da rotina. Por exemplo:

    Call Importa(strDb)

    E não se esqueça de que a senha de um banco de dados é sensível a letras maiúsculas e minúsculas.

    2 - Criar tabelas vinculadas a outro banco de dados
    Para criar tabelas vinculadas a outro banco de dados (chamado de back-end), simplesmente altere o código da rotina Importa na linha referente ao método DoCmd.TransferDatabase: altere a constante acImport para acLink.

    3 - Atualizar tabelas vinculadas anteriormente
    Na pergunta Como atualizar tabelas vinculadas por código?, você encontrará um modo de atualizar os vínculos (caminho do back-end) das tabelas vinculadas existentes no front-end, sem precisar deletá-las e recriá-las novamente com o método DoCmd.TransferDatabase.

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidad
    Convidado


    [Resolvido]Criar vínculos com a base ao abrir o aplicativo Empty Re: [Resolvido]Criar vínculos com a base ao abrir o aplicativo

    Mensagem  Convidad 20/10/2011, 12:21

    Po, sei quase de cor o site do JR e não vi este código...
    Bom, dizer o que?... é Ctrl+C e Ctrl+V !
    Beleza de código. Valeu Mestre Avelino!

      Data/hora atual: 25/1/2022, 17:41