A criação de um Documento de Banco de dados usando o Microsoft Access
-
21-12-2019 - |
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.
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.
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.
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.