>source

내 보낸 파일의 저장 위치를 ​​표시해야하는 MS Access 기본 양식에 레이블이 있습니다. 클릭하면 파일 대화 상자가 나타나고 사용자가 내보낼 폴더를 선택할 수있는 [편집] 버튼이 있습니다. 폴더가 선택되면 레이블 캡션이 사용자가 선택한 폴더의 위치로 변경됩니다. 이것은 훌륭하게 작동합니다. 내 유일한 문제는 DB를 닫았다가 다시 열면 레이블 캡션이 원래 캡션이 무엇이든 다시 돌아온다는 것입니다 (이 경우 TEST라고 말합니다). 레이블 캡션이 변경 될 때 사용자가 [편집] 버튼을 클릭하고 위치를 다시 변경하지 않는 한 그대로 유지하고 싶습니다. 아래는 내가 사용하는 VBA 코드입니다.

도움을 주셔서 감사합니다!

Sub SetFileLocation()
    Dim Ret
    strUserName = Environ("UserName")
    strPath = "C:\documents and settings\" & strUserName & "\Desktop"

    '~~> Specify your start folder here
    Ret = BrowseForFolder(strPath)
    Forms.frmmainform.lblFolderLocation.Caption = strFolderLocation

End Sub
Function BrowseForFolder(Optional OpenAt As Variant) As Variant
     'Function purpose:  To Browser for a user selected folder.
     'If the "OpenAt" path is provided, open the browser at that directory
     'NOTE:  If invalid, it will open at the Desktop level
    Dim ShellApp As Object
     'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "Please choose a folder", 0, OpenAt)

     'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0
Debug.Print BrowseForFolder
strFolderLocation = BrowseForFolder
Debug.Print strFolderLocation
     'Destroy the Shell Application
    Set ShellApp = Nothing
     'Check for invalid or non-entries and send to the Invalid error
     'handler if found
     'Valid selections can begin L: (where L is a letter) or
     '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1)
    Case Is = ":"
        If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
    Case Is = "\"
        If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
    Case Else
        GoTo Invalid
    End Select
    Exit Function
Invalid:
     'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False
End Function

  • 답변 # 1

    가장 좋은 방법은 일부 테이블에 값을 저장하는 것이지만 사용자 정의 양식 속성에 이전 값을 저장할 수 있습니다. 먼저 양식 속성을 작성하십시오 (즉시 창에서).

    CurrentProject.AllForms ("Your form name").Properties.Add "LastFolder", ""
    
    

    그런 다음 서브에 저장하십시오

    ...
    Me.lblFolderLocation.Caption = strFolderLocation
    CurrentProject.AllForms("Your form name").Properties("LastFolder").Value = strFolderLocation
    
    

    그런 다음로드 이벤트에서 마지막 값을 복원하십시오 :

    Private Sub Form_Load()
        Me.lblFolderLocation.Caption  = CurrentProject.AllForms("Your form name").Properties("LastFolder")
    End Sub
    
    
    

관련 자료

  • 이전 java - mockito로 안심 - 모의 dao 저장소
  • 다음 파이썬에서 열의 모든 고유 값에 대한 더미를 만드는 방법