문제

데이터베이스와 관련된 모든 문서를 "그 안에" 저장하는 데이터베이스 내에 테이블을 만들려고 합니다.내가 정말로 원하는 것은 파일을 업로드하고 파일을 네트워크 위치에 복사하는 vba 코드를 갖고 문서 테이블 양식의 두 필드를 연결하여 파일 이름을 바꾸는 것입니다(외부 위치에서 중복 파일 이름 문제 제거). 그런 다음 테이블의 파일 경로 필드에 파일 이름과 파일 경로를 저장합니다.나는 액세스 및 VBA에 매우 익숙하지 않아 모든 것을 작동시키는 데 어려움을 겪고 있습니다.현재 가지고 있는 코드는 다음과 같습니다.

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

양식에서 두 필드를 연결하여 이동하거나 이름을 바꾸거나 테이블의 경로 필드에 경로를 저장하는 방법에 대한 핸들을 얻을 수 없는 것 같습니다.나는 가능한 정보를 얻기 위해 다음 장소를 방문했습니다.

ms 액세스로 파일을 찾아보고 파일 이름과 경로를 가져옵니다.

한 디렉토리에서 다른 디렉토리로 파일을 복사하는 VBA

현재 Microsoft Access 2010을 사용하고 있으며 데이터베이스 크기 제약으로 인해 파일 첨부 필드 유형을 사용하고 싶지 않습니다.현재 버튼을 누르면 업로드 중인 파일을 탐색하는 파일 탐색기가 나타나며, 경로와 파일 이름이 문자열로 입력됩니다.이 시점 이후 나는 길을 잃었다.다른 정보가 필요하면 알려주시기 바랍니다.도움을 주셔서 미리 감사드립니다.

도움이 되었습니까?

해결책

문서 관리에 대한 귀하의 접근 방식이 옳다고 생각합니다.대부분의 경우 파일 시스템이 이 작업에 더 적합할 때 데이터베이스 자체에 문서를 저장하는 것은 그다지 의미가 없습니다.

수행하는 작업은 매우 간단하지만 다양한 경로와 파일 이름을 올바르게 관리하고 여기에서 올바른 정보를 추출하는 데 가장 큰 복잡성이 발생합니다.

경로의 다양한 비트를 분석하고 재구성하기 위해 일부 도우미 기능을 사용하지 않으면 까다로울 수 있습니다.

나는 샘플 데이터베이스 몇 가지 기능이 있습니다.필요한 것과 정확히 일치하지 않을 수도 있지만 특정 상황에 맞게 쉽게 사용할 수 있습니다.

샘플 데이터베이스에는 Tools 경로를 해당 구성 요소로 분할하는 몇 가지 유용한 기능이 있는 VBA 모듈입니다.

기본적으로 데이터베이스에는 2가지 형태가 있습니다.

기본 양식을 사용하면 파일을 저장할 네트워크 경로를 설정할 수 있습니다.그런 다음 미리 정의된 계정 번호(목록에 나열됨)를 선택할 수 있습니다. Account 표) 문서와 연결된 후 업로드 버튼을 클릭하세요.

Main Form

이렇게 하면 새 레코드가 생성됩니다. Document 테이블을 열고 문서 제목을 편집할 수 있는 양식을 열고 버튼을 클릭하여 서버에 파일을 업로드합니다.

Document Upload form

사용자가 선택한 파일은 경로가 변환된 후 서버에 복사됩니다.나는 파일이 원래 확장자를 유지하고 파일 이름이 ID ~의 Document 파일 정보가 저장된 위치를 기록합니다(예: 5845.pdf) 서버에 파일이 저장되는 폴더가 계정번호가 되어 사용자가 선택한 소스파일이

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

예를 들어 다음과 같이 저장됩니다.

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

또한 기본 양식을 사용하면 기존 레코드를 업데이트하고, 서버에서 파일을 열거나, 파일이 있는 서버의 폴더를 열거나, 서버 파일을 원래 파일 이름으로 사용자 컴퓨터에 다시 복사할 수도 있습니다.

나는 당신이 그것을 가지고 놀 수 있도록 할게요.문제가 있으면 알려주세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top