문제

누구 든지이 명령 중 하나를 실제로 양식을 저장하지 못하게 할 수있는 것이 무엇인지 아이디어가 있습니까?누락 된 설정이 있습니까? "읽기 전용"양식을 만들 수 있습니까?Control.Enabled 속성을로드에서 토글하고 있지만 양식을 닫은 후에 막아 냄.

DoCmd.Close acForm, Me.Name, acSaveYes
DoCmd.Save acForm, Me.Name
.

편집 : 일부 PSUEDO 코드는 명확히합니다. 이 기능은 양식로드에서 실행되어 특정 컨트롤을 활성화 / 비활성화하고 예상대로 100 %를 작동합니다.

Private Sub Form_Load()
     If IsNull(TempVars.Item(Me.Name)) Then
         TempVars.Add Me.Name,1

         If somecondition = true then
             Me.Controls.Item("somecontrol").enabled = True
         Else
             Me.Controls.Item("somecontrol").enabled = False
         End If
     End If
End Sub
.

이 이벤트는 양식을 닫고 다른 양식을 엽니 다.문제는 양식로드에 설정된 Control.enabled 설정이 저장되지 않습니다.

Private Sub button_OnClick()
    DoCmd.OpenForm "someotherform", acnormal
    DoCmd.Close acForm, Me.Name, acSaveYes
End Sub
.

다음에 첫 번째 양식을 열면 제어 속성이 설정되지 않으며 conrol.enabled 속성을 다시 설정해야합니다.

도움이 되었습니까?

해결책

문서를 찾을 수 없었지만 정상 모드로 만들어진 디자인 변경을 저장할 수없는 것으로 보입니다.글로벌 컬렉션 유형 변수를 선언하는 작업을 종료했습니다.이 콜렉션 변수에 "form.name & control.name"의이 컬렉션 변수에 연결된 문자열을 저장했습니다.양식이 열리지 않은 경우, 나는 어떤 컨트롤을 사용하도록 설정 해야하는지,이 컬렉션 전역에 저장 해야하는 긴 검사를 실행했습니다.양식이 적어도 한 번 열리면 양식 검사의 컨트롤을 통해 반복하여 글로벌 "인증 된"컨트롤의 글로벌 수집에 있는지 확인했습니다.그것은 정말로 해치가 있지만 꽤 잘 작동합니다.

다른 팁

닫기를 실행 한 후 me.name이 비어 있으므로 사용하는 코드가 내 테스트에서 실패합니다.다른 코드가 무엇인지 모르지만 주문을 전환 한 후에 양식을 닫을 수있었습니다.

다음과 같이 '열기'이벤트에 코드를 두는 것이 좋습니다.

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Save acForm, Me.Name
    DoCmd.Close acForm, Me.Name, acSaveYes
End Sub
.

상태에서 사용 가능한 속성을 변경 하시겠습니까?레코드가있는 경우 해당 컨트롤이 비활성화되어 있으면 모든 레코드 탐색에서 시작하는 양식의 현재 이벤트를 활성화하려면됩니다.로드 및 열기가 너무 일찍이며 탐색시 반복하지 않습니다.

Private Sub Form_Current()
  If Me!X = True Then
    Me.Controls("somecontrol").Enabled = False
  Else
    Me.Controls("somecontrol").Enabled = True
  End If
End Sub
.

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