Pergunta

Eu estou tentando criar uma tabela dentro de um banco de dados que armazena todos os documentos relacionados para o banco de dados "na mesma".O que eu realmente quero fazer é ter um arquivo carregado e ter o código vba que copia o ficheiro para uma localização de rede, renomeia o arquivo pela concatenação de dois campos do documento formulário de tabela (eliminando o problema de nomes de ficheiro duplicado na localização externa) e, em seguida, armazena o nome do arquivo e caminho do arquivo no campo caminho do arquivo na tabela.Eu sou muito novo para access e vba, então eu estou tendo dificuldades em conseguir tudo a funcionar.O código eu tenho atualmente está abaixo:

Option Compare Database

Private Sub Command15_Click()
Dim f As Object

Set f = Application.FileDialog(3)

f.AllowMultiSelect = False

If f.Show Then
    For i = 1 To f.SelectedItems.Count
        sFile = Filename(f.SelectedItems(i), sPath)
        MsgBox sPath & "---" & sFile
    Next
End If

End Sub

Public Function Filename(ByVal strPath As String, sPath) As String
    sPath = Left(strPath, InStrRev(strPath, "\"))
    Filename = Mid(strPath, InStrRev(strPath, "\") + 1)
End Function

Eu não consigo obter uma alça sobre como mover, renomear concatenando os dois campos do formulário, ou armazenar o caminho no caminho do campo da tabela.Eu tenho sido para os seguintes locais para obter as informações que eu poderia

ms access procurar arquivo e nome do arquivo e caminho

VBA para copiar um arquivo de um diretório para outro

Atualmente, estou usando o Microsoft Access 2010, e eu não quiser utilizar o anexo de arquivo tipo de campo devido a restrições de tamanho do banco de dados.Atualmente eu pressionar um botão e um explorador de arquivos aparece para navegar até o arquivo a ser carregado, e o caminho e nome de arquivo estão inseridas em cadeias de caracteres.Após este ponto, eu estou perdido.Se qualquer outra informação é necessária, por favor, deixe-me saber.Obrigado antecipadamente pela ajuda.

Foi útil?

Solução

Eu acredito que a sua abordagem para a gestão de documentos é direito.Na maioria dos casos, não fazer muito sentido para armazenar documentos no próprio banco de dados quando o sistema de arquivos é mais adequado para este trabalho.

O que você está fazendo é bastante simples, mas o principal complexidade virá a partir do correto gerenciamento dos diversos caminhos e nomes de arquivos e extrair as informações corretas sobre eles.

Pode tornar-se complicado se você não estiver usando algumas funções auxiliares para dissecar e recompor os vários bits de caminhos.

Eu criei um banco de dados de exemplo que tem algumas funções.Pode não ser exatamente em linha com o que você precisa, mas você pode facilmente jogar ao redor com ele para se adequar ao seu caso em particular.

O banco de dados de exemplo inclui um Tools Módulo VBA que tem algumas funções úteis para dividir um Caminho em seus constituintes.

Basicamente, o banco de dados tem 2 formas.

O formulário principal permite que você defina o caminho de rede onde os arquivos devem ser salvos.Você pode, em seguida, selecione um pré-definidos, número de Conta (listados no Account tabela) associados a um documento e, em seguida, clique no botão fazer upload.

Main Form

Isso cria um novo registro na Document tabela e abre um formulário onde você pode editar o título do documento e clique em um botão para fazer o upload de um arquivo para o servidor.

Document Upload form

O arquivo selecionado pelo usuário é copiado para o servidor após o seu caminho tem sido transformada.Eu tomei a suposição de que o arquivo seria manter a sua extensão original, o nome do arquivo deve ser renomeado para o ID do Document registro onde as informações do arquivo é salvo (como 5845.pdf) e que a pasta onde o arquivo é salvo no servidor seria o número da conta, de modo que uma fonte de arquivo selecionado pelo usuário

C:\Users\user\Desktop\SuperSecretFile.pdf

seria guardado como, por exemplo:

\\docserver\files\123-55547\5845.pdf

O formulário Principal também permite a atualização de um registro existente, abra o arquivo do servidor, abra o servidor da pasta onde o arquivo está localizado ou até mesmo copiar o arquivo de volta para o computador do usuário com o nome original do arquivo.

Eu vou deixar você brincar com ele.Deixe-me saber se você tem quaisquer problemas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top