2017-12-06 36 views
0

I 리셋 버튼에 다음과 같은 코드가 있습니다Microsoft Access 2016 : 단추를 사용하여 수식을 사용하는 콤보 상자의 기본값 다시 설정?

Private Sub cmdReset_Click() 
    Dim ctl As Control 

    For Each ctl In Me.Controls 

     Select Case ctl.ControlType 
      Case acComboBox 
       ctl.Value = ctl.DefaultValue 
     End Select 
    Next 
    Me.Requery 
End Sub 

이 콤보 박스 내 기본값이 어떻게 생겼는지입니다 : 내가 리셋 버튼을 콤보 상자를 클릭하면

=DLookUp("FieldName","TableName","strCriteria") 

만 표시 함수를 실제로 실행하는 대신 =DLookUp("FieldName","TableName","strCriteria") 문자열로 방정식. 다른 기본값 인 =[cboName].[ItemData](#)을 사용해 보았는데 같은 문제입니다. Form은 완벽하게 다르게 작동합니다.

감사합니다.

답변

0

ctl.DefaultValue은 실제 계산 된 기본값이 아니라 문자열 기본값 값 속성을 반환하기 때문에 예상되는 동작입니다.

가능한 방법은 Eval을 사용하여 실제 기본값을 계산하는 것입니다. 그러나 기본값은 VBA가 아니고 Access 식이므로 범위가 다르며 목록 구분 기호 설정과 같은 로캘 설정에 민감하므로 많은 문제가 발생할 수 있습니다.

ctl.Value = Eval(Right(ctl.DefaultValue, Len(ctl.DefaultValue) -1)) 
+0

가 대단히 감사합니다 :

당신은 다음 줄을 사용할 수 있습니다! 그것은 완벽하게 작동했습니다! – JSRambal