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


3 participantes

    Registrar caminho de rede para as Imagens no BD

    avatar
    Luis Mesquita
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/01/2012

    Registrar caminho de rede para as Imagens no BD Empty Registrar caminho de rede para as Imagens no BD

    Mensagem  Luis Mesquita 13/11/2013, 13:15

    Caros amigos,

    Em meu aplicativo estou enfrentando uma dificuldade quando o mesmo é acessado por uma estação de rede.
    Incialmente projetado para trabalhar apenas Local agora tenho necessidade do mesmo funcionando em rede.

    A questão:

    Imagens são anexadas ao aplicativo em alguns cadastros direcionado pelo caminho onde se encontram no PC.
    Esse caminho é gravado na tabela (textBox), porém, sempre como caminho local.
    Quando é acessado pela Rede, as imagens não são carregadas ( claro!! )
    Tem algo que possa ser editado no código do botão que faz a busca da imagem no PC para que ele grave um caminho de rede na tabela e não um caminho local?

    Fico grato por qualquer ajuda!!

    Eis o código que uso no botão que carrega a imagem

    Private Sub Inserir_imagem_Click()
    'É necessário fazer referência a Microsoft Office 11.0 Object Library
    'em Ferramentas > Referências no Editor do Visual Basic

    Dim CxDialog As Office.FileDialog

    Set CxDialog = Application.FileDialog(msoFileDialogFilePicker)
    With CxDialog

    'define como seleção simples
    .AllowMultiSelect = False

    ' Define o titulo da caixa de diálogo
    .Title = "Selecione uma imagem"

    ' limpa os filtros
    .Filters.Clear

    'adiciona novos filtros
    .Filters.Add "JPG", "*.jpg"
    .Filters.Add "BMP", "*.bmp"
    .Filters.Add "Todos os arquivos", "*.*"

    'mostra a caixa de dialogo
    If .Show = True Then 'se alguma imagem tiver sido escolhida
    'atribuie o endereço da imagem ao campo link
    Me.DesenhoDoPloter = .SelectedItems(1)

    'exibe a foto
    Me.ImagemDesenho.visible = True

    'carrega a foto
    Me.ImagemDesenho.Picture = Me.DesenhoDoPloter

    End If
    End With
    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  criquio 13/11/2013, 14:48

    Se as tabelas forem vinculadas no Frontend, você pode passar o caminho do vínculo usando a propriedade Connect da tabela.


    .................................................................................
    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
    Luis Mesquita
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/01/2012

    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  Luis Mesquita 13/11/2013, 15:45


    Olá Criquio!!
    Sim as tabelas são vinculadas ao FrontEnd, mas desculpe a minha ignorância...rss.. não tenho a menor idéia de como e onde usar esta prorpiedade Connect na tabela..
    Seria te pedir muito um exemplo?
    Obrigado mesmo assim pela resposta.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  criquio 13/11/2013, 16:15

    Vamos elaborar uma função que servirá tanto para computador local quanto para o caminho de um servidor. Quando você abre uma tabela no modo design, é possível ver nas propriedades dela uma lista de linhas. Uma delas é a Descrição. Se a tabela for vinculada, esse campo terá um valor no qual é passado o caminho da tabela de origem. Algo como:

    DATABASE=X:\Caminho\Nome do backend.mdb;TABLE=NomeDaTabela

    Se for uma tabela local, essa linha estará vazia. Então podemos fazer um loop pelas tabelas e ver se alguma delas tem essa propriedade preenchida. Se tiver é porque é remota. Se nenhuma tiver, é porque é local. Fazemos isso porque um frontend pode ter tambem alguma tabela local alem das vinculadas. Então, se for local, passamos o caminho do aplicativo mais o nome da pasta de imagens. Se for remoto, passamos o caminho do backend mais o nome da pasta das imagens que deve estar na mesma pasta do backend:

    Código:
    Dim T As TableDef, C As String, Caminho As String ' 01

    C = "" ' 02

    For Each T In CurrentDb.TableDefs ' 03
        If T.Connect <> "" Then ' 4
            C = Replace(T.Connect, ";DATABASE=", "") ' 05
            Exit For ' 06
        End If ' 07
    Next ' 8

    If C = "" Then ' 09
        Caminho = CurrentProject.Path & "\Imagens\" ' 10
    Else ' 11
        Caminho = Left(C, Len(C) - InStr(1, StrReverse(C), "\", 1)) & "\Imagens\" ' 12
    End If ' 13

    ' 01 - Declaramos variáveis para representar as tabelas e os nomes das tabelas;
    ' 02 - Definimos C como vazio.
    ' 03 - Para cada Tabela no banco de dados atual...
    ' 04 - ... se a propriedade "Descrição" não estiver vazia então...
    ' 05 - ... igualamos a variável C ao valor dessa propriedade retirando a parte ";DATABASE=" com o Replace...
    ' 06 - ... e encerramos o For.
    ' 07 - Fim da condição If.
    ' 08 - Fim do For.
    ' 09 - Se C estiver vazio...
    ' 10 - Caminho será o caminho atual mais a pasta de imagens.
    ' 11 - Caso contrário...
    ' 12 - ... Caminho será o caminho remoto mais a pasta de imagens.
    ' 13 - Fim.

    ' OBS.: Na linha 12, "inStr" busca a primeira ocorrência de um texto procurado. Nesse caso, procuramos pela barra(\).
    ' Com strReverse, invertemos o texto de C para pegar a última barra.
    ' Com Left e Len pegamos tudo que for até a última barra, o que indica o caminho sem o nome do backend.


    .................................................................................
    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
    Luis Mesquita
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/01/2012

    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  Luis Mesquita 13/11/2013, 16:41

    Cara valeu demais!!
    Vou dar uma estudada e tentar aplicar...volto pra dizer o resultado.
    Agradeço demais a tua atenção!!!
    avatar
    serbarbosaportugal
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 61
    Registrado : 25/06/2014

    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  serbarbosaportugal 14/9/2014, 22:03

    Muito boa a ideia desta dica, respondida pelo criquio....só uma pequena duvida: Onde e como chamar esta função????

    Mil obrigados!!

    Conteúdo patrocinado


    Registrar caminho de rede para as Imagens no BD Empty Re: Registrar caminho de rede para as Imagens no BD

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 25/11/2024, 01:11