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]Back-End Front-End CurrentProject.Path

    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Back-End Front-End CurrentProject.Path

    Mensagem  nioxys 5/5/2012, 16:38

    Olá,

    Estou a desenvolver (tentar) um aplicativo e estou a pensar dividi-lo em Back-End e Front-End de forma a partilhar o Back-End em rede de forma a que a informação esteja disponível para vários utilizadores.
    Sendo assim a minha questão é a seguinte, no meu código faço uso muitas vezes da instrução CurrentProject.Path, de forma a organizar ficheiros relacionados com os registos, se eu dividir a BD a instrução CurrentProject.Path vai fazer referência ao caminho do Back-End (tabelas) ou do Front-End (formulários)?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Avelino Sampaio 5/5/2012, 17:02

    Olá

    Estude este tutorial:


    http://www.usandoaccess.com.br/tutoriais/tuto13.asp?id=1#inicio

    Estudo o Maestro que está mais atualizado.

    http://www.usandoaccess.com.br/download.asp

    Bom estudo!


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


    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Convidad 5/5/2012, 17:32


    CurrentProject.Path retorna a pasta do mdb atual.
    X:\PastaDoProjeto

    CurrentDbDir retorna a pasta do mdb atual & \
    X:\PastaDoProjeto\

    Public Function BackEndAtual() As String
    'retorna o caminho até o nome do backend atualmente vinculado
    'X:\PastaDoProjeto\NomeBackEnd.mdb
    Dim strCon As String
    'substitua t00Link pelo nome de uma tabela do seu backend
    strCon = CurrentDb.TableDefs("t00Link").Connect
    BackEndAtual = Right$(strCon, Len(strCon) - InStr(1, strCon, "=", 2))
    End Function
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  nioxys 5/5/2012, 17:48

    Obrigado Avelino, estive a ver os links que você deixou e parecem interessantes, vou dar uma olhada.

    No entanto parece que a resposta do Norberto vai mais de encontro à minha dúvida.
    Neste momento não tenho a BD dividida então eu uso a instrução CurrentProject.Path para me referir à pasta actual do BD onde tenho uma pasta chamada Files com arquivos. Se eu avançar para a divisão do BD eu vou partilhar não só o Back-End na rede mas também a pasta com os arquivos então a minha dúvida é se o CurrentProject.Path que tenho no código vai funcionar, penso que não.

    Norberto, essa função retorna o caminho do BD actual (back-End?), certo? Então se utilizar essa função tenho de arranjar uma variável que armazene o valor retornado por essa função e substituir a instrução CurrentProject.Path no código por essa variável, certo?
    avatar
    Convidad
    Convidado


    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Convidad 5/5/2012, 18:10


    Exato. Retorna o caminho e o nome do BackEnd.
    Um exemplo, no caso fazendo um backup do BackEnd:


    Public Sub ZipaBanco()
    'Criado pelo colega Raw do Canadá
    'Adaptado por JPaulo ® Maximo Access
    'Adaptado por Norberto Rost

    Dim strDate As String, DefPath As String
    Dim oApp As Object
    Dim fname, FileNameZip
    On Error Resume Next

    'Usando uma função do Avelino para informar a pasta de destino
    DefPath = fncOrigem(mBackup)
    If Right(DefPath, 1) <> "\" Then
    DefPath = DefPath & "\"
    End If

    strDate = Format(Now, "dd-mmm-yy_h-mm-ss")
    'Empresa é uma função que retorna o nome do cliente usuário
    FileNameZip = DefPath & Empresa & " Backup " & Format(Date, "Long Date") & " .zip"
    fname = BackEndAtual
    On Error Resume Next
    CriaNovoZip (FileNameZip)
    Set oApp = CreateObject("Shell.Application")
    oApp.NameSpace(FileNameZip).CopyHere fname
    MsgBox "Criado com sucesso em: " & FileNameZip
    Set oApp = Nothing
    Exit Sub
    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Avelino Sampaio 5/5/2012, 18:16

    Olá amigo Norberto

    Esta função que vc está propondo para o back-end, serve somente para back-end sem a senha. Se pôr a senha no back-end, já vai dar erro.

    No meu aplicativo Maestro, tem uma função que serve para os dois casos (com e sem senha no back-end). Verifique então as diferenças

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  nioxys 5/5/2012, 18:19

    Entendi.

    Mas no meu caso eu não rpeciso ir até ao nome da BD, preciso sim apenas do caminho da pasta onde este se encontra, ou seja, em vez de X:\PastaDoProjeto\NomeBackEnd.mdb quero apenas X:\PastaDoProjeto\, qual é a alteração que devo fazer na função?

    Já agora pode me explicar o significado desta instrução,

    BackEndAtual = Right$(strCon, Len(strCon) - InStr(1, strCon, "=", 2))

    Obrigado.
    avatar
    Convidad
    Convidado


    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Convidad 5/5/2012, 18:32


    Correto, Avelino. É o que uso aqui normalmente, pois não há senha no BackEnd.

    Olhá aí, nioxys: acho que temos que ver certinho a função do Avelino!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Avelino Sampaio 5/5/2012, 18:45

    Huuum, Norberto! Esqueci que vc usa o 2003.

    Segue então a função para vc observar as diferenças.

    Código:
    Public Function fncBackEndAtual() As String
    Dim strCon As String
    Dim strTabelaLink As String
    Dim tbl As DAO.TableDef

    Dim k As String
    On Error GoTo trataerro

    For Each tbl In CurrentDb.TableDefs
        If Len(tbl.Connect & "") > 0 Then strTabelaLink = tbl.Name
    Next
    '-----------------------------------------------------
    'Vou usar a última tabela vinculada, para obter
    'o caminho do back-end (propriedade Connect).
    '-----------------------------------------------------
    strCon = CurrentDb.TableDefs(strTabelaLink).Connect
    '-----------------------------------------------------
    'Agora vou retirar apenas o caminho do accdb,
    'sem o ";DATABASE=" que o precede na string Connect.
    '-----------------------------------------------------
    fncBackEndAtual = Right$(strCon, (Len(strCon) - (InStr(1, strCon, ";DATABASE=", 2) + 9)))

    sair:
        Exit Function
    trataerro:
        MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
        Resume sair:
    End Function

    Bom estudo!


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


    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Convidad 24/5/2012, 00:37


    Tópico marcado como Resolvido.

    Se necessário, dê continuidade.


    Conteúdo patrocinado


    [Resolvido]Back-End Front-End CurrentProject.Path Empty Re: [Resolvido]Back-End Front-End CurrentProject.Path

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 17:10